我试图从一个文本文件(逐行)中复制给定文件夹中的不同文件,并在行中使用一些特定的关键字,但它是从最后一行复制文件。我是批处理脚本的新手,所以我不太了解批处理脚本的语法,我的代码是
@echo off
setlocal disableDelayedExpansion
mkdir events_sorted
for /f "tokens=3-7" %%a in (input.txt) do set id=%%a-%%b-%%c-%%d%%e
for /r /d %%i in (.) do (
cd %%i
copy "%id%-00S.*" "%CD%/events_sorted/"
)
pause谢谢
发布于 2017-04-03 13:44:26
您需要将for /R循环嵌套到for /F循环中,方法是将(放在do之后,并将)放在pause之前。此外,不要将行字符串存储在变量id中,只需在copy命令行中直接使用行字符串即可。此外,不要使用cd %%i,而应立即使用%%i而不是%CD%。下面是固定的代码:
@echo off
setlocal EnableExtensions DisableDelayedExpansion
mkdir "events_sorted"
for /F "usebackq tokens=3-7" %%a in ("input.txt") do (
for /R /D %%i in (.) do (
copy "%%a-%%b-%%c-%%d%%e-00S.*" "%%~i/events_sorted/"
)
)
pause
endlocal
exit /Bhttps://stackoverflow.com/questions/43176997
复制相似问题