Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 在csv文件中列出的目录中查找文件并复制到新文件夹_Batch File_Csv_Command - Fatal编程技术网

Batch file 在csv文件中列出的目录中查找文件并复制到新文件夹

Batch file 在csv文件中列出的目录中查找文件并复制到新文件夹,batch-file,csv,command,Batch File,Csv,Command,我有一个满是扫描文档的目录,根据年份、月份和日期分为不同的文件夹和子文件夹。每个扫描文档的文件名都有一个唯一的条形码编号 for /f "usebackq delims=" %%a in ("theFile.csv") do ( for /r "%theDir%" %%b in ("%%a.*") do copy "%%b" "C:\Data" ) 我要做的是编写一个命令,在csv文件中使用这些条形码的列表,搜索目录和子目录中的相关文件,然后将它们复制到本地驱动器上的新文件夹中 这就

我有一个满是扫描文档的目录,根据年份、月份和日期分为不同的文件夹和子文件夹。每个扫描文档的文件名都有一个唯一的条形码编号

for /f "usebackq delims=" %%a in ("theFile.csv") do (
   for /r "%theDir%" %%b in ("%%a.*") do copy "%%b" "C:\Data"  
)
我要做的是编写一个命令,在csv文件中使用这些条形码的列表,搜索目录和子目录中的相关文件,然后将它们复制到本地驱动器上的新文件夹中

这就是我到目前为止所拥有的

@echo off
setlocal enabledelayedexpansion

set id=0
if not exist AllFilesFolder mkdir AllFilesFolder

set "theDir=Z:\INVS"

for /f "delims=" %%i in (theFile.csv) do (
    copy %theDir%\%%i.* "C:\Data")
真希望有人能帮我解决这个问题。我可能会浪费更多的时间来尝试让它工作,而不是试图用老式的方式找到文件,但如果我能让它工作,它将节省时间在未来

非常感谢,


戴夫

我希望我正确地解释了你的问题。 我假设,
theFile.csv
只包含条形码,没有完整的路径:

for /f "delims=" %%i in (theFile.csv) do (
  for /f %%j in ('dir /s /b %theDir%\%%i.*') do (
    copy "%%j" "C:\Data"  
  )
)

这里还有另一个选项:
usebackq
允许
thefile.csv
也通过路径指定,并在路径或文件名中包含空格或(&I)

for /f "usebackq delims=" %%a in ("theFile.csv") do (
   for /r "%theDir%" %%b in ("%%a.*") do copy "%%b" "C:\Data"  
)

令人惊叹的!你是明星斯蒂芬,这正是我想要的。我可以厚着脸皮要求稍微修改一下吗?是否可以在复制每个文件名时对其进行更改?例如,要将001-添加到每个文件名的开头。
001
到每个文件名,还是要在第一个文件`002'中添加一个“计数器”:
001
?到第二个,依此类推?如果可能的话,一个计数器。这样我们就可以按照csv文件中输入的顺序重新扫描图像。