【问题标题】:Find files in directory listed in csv file and copy to new folder在 csv 文件中列出的目录中查找文件并复制到新文件夹
【发布时间】:2014-04-03 08:05:06
【问题描述】:

我有一个充满扫描文档的目录,根据年、月和日期将它们分组到不同的文件夹和子文件夹中。每个扫描的文档都有一个分配给其文件名的唯一条形码编号。

我要做的是编写一个命令,该命令将在 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")

真的希望有人可以帮助我解决这个问题。与尝试以老式方式查找文件相比,我可能浪费了更多时间试图让它工作,但如果我能让它工作,它会在未来节省时间。

非常感谢,

戴夫

【问题讨论】:

    标签: batch-file csv command


    【解决方案1】:

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

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

    【讨论】:

    • 太棒了!你是明星斯蒂芬,这正是我要找的。我可以有点厚颜无耻并要求稍作修改吗?是否可以在复制时更改每个文件名?例如在每个文件名的开头添加 001-。
    • 001 到每个文件名,或者你想要一个“计数器”:001 到第一个文件,`002?到第二个等等?
    • 如果可能的话,一个计数器。这样我们就可以按照在 csv 文件中输入的顺序重新扫描图像。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-01
      • 2016-02-20
      • 2014-07-25
      • 1970-01-01
      相关资源
      最近更新 更多