繁体   English   中英

批处理文件以在目录中搜索文件列表并复制到单个文件夹

[英]Batch file to search directory for list of files and copy to single folder

我有一个.txt文件,其中包含网络驱动器(M :)上的文件列表。 我需要一个批处理文件来浏览该列表,搜索该驱动器上单个文件夹的子目录中的文件,然后将它们复制到另一个文件夹。 我已经尝试了很多解决方案,但都没有运气。

文本文件是文件和扩展名的列表,即

abc.step
afer.iges
ca76dc7d.sldprt

到目前为止,这是我尝试过的

@ECHO OFF 
SETLOCAL ENABLEDELAYEDEXPANSION 
cls
set dest=C:\Users\kduquette.000\Desktop\Files 
for /f "TOKENS=*" %%f in (C:Desktop\Files\list.txt) do (
  set i=1
  for /f "tokens=*" %%F IN ('dir M: "%%~f"') Do (
    for %%N in ("%%F") Do (
      set name=%%~NN
      set ext=%%~XN
    )
    copy "%%~F" "%dest%\!name!_!i!!ext!"
    set /A i=!i!+1
  ) 
)
ENDLOCAL

我们可以检查文件是否存在并复制它:

@echo off
set "dest=C:\Users\kduquette.000\Desktop\Files"
for /f "delims=" %%i in (C:\Desktop\Files\list.txt) do if exist "M:\Cads\%%i" echo copy "M:\Cads\%%i" "%dest%" 

注意,目前,我在复制字符串中添加了echo ,因此您可以首先测试结果。 对结果满意后,请删除echo

但是,如果要搜索文件,请在M:\\驱动器中递归搜索,然后:

@echo off
set "dest=C:\Users\kduquette.000\Desktop\Files"
for /f "delims=" %%i in (C:\Desktop\Files\list.txt) do (
    pushd M:\
    for /f "delims=" %%a in ('dir /b /s "%%i"') do echo copy "%%~fa" "%dest%"
    popd
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM