我有一个.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
答案 0 :(得分:0)
我们可以检查文件是否存在并复制:
@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
)