请教:如何通过一个列表里的文件名,选择对应的文件复制到另外一个文件夹?

因为客人发订单过来,需要根据款号发送相对应的文件给供应商,那么相对应的文件列表生成其实就很简单,在excel里用公式拉一下就出来了。

那复制相对应的文件,我自己的思路:

  1. 找软件,找到了一个叫《文件批量复制工具》,V3.3.1版,但是注册时不能写入C盘,因为公司的电脑的原因。可以导入一个.lst的文件,然后复制。对比以下方法,其实这个方法算是简单了。

  2. 用CMD命令。以前试过导出一个文件夹里面所有文件的文件名,很简单,复制粘贴,改为.bat双击执行就OK了,但是百度了一些方法,感觉还是太难理解了。其中一个如下:

@echo off
for /f "delims=" %%a in (ba.txt) do (
copy /t "%%a" b
)
echo end...
pause

看了一下,ba.txt就是那个文件列表,b应该是目标文件夹。但试了加路径还是不行。

请问还有其他的方法吗?

如果你能用国语把你的需求讲解一下,说不定就能帮你想到一些解决办法 :crazy_face:

Excel插件 SoSo 工具集10.0 中有一个功能 叫做 文件自动分类到文件夹
好像能满足你的需求,如果你没有找到其他更好的办法 可以试一下


支持自定义源文件和目标文件夹,在表格中数据操作起来更方便。

有需可以去这下载

可以保存成 Eveything 的列表文件,然后直接打开复制。

之前做过一个类似的Quicker动作可以参考一下。
从给定目录里提取指定前缀的文件并复制到剪贴板
https://getquicker.net/sharedaction?code=9a5beec4-8809-4325-cbaa-08d8dde466af

1 Like

不太确定这样是否符合你的要求…

source_path, dest_path 分别是源目录和目标目录,带双引号可以处理含空格路径。

@echo off

set source_path="C:\Temporary\cmd-excel-copy\src space"
set dest_path="C:\Temporary\cmd-excel-copy\dst space"

for /f "tokens=*" %%a in (list.txt) do (
  echo 正在复制: %%a
  copy %source_path%\%%a %dest_path%
)

image

1 Like

对的,就是这个意思