test.txt
包含 4 个具有相对路径的文件:"brazil\206\tri\read.txt" "brazil\206\tri\log.i" "brazil\207\pass\prog.p" "brazil\206\bin\read.xml"
使用以下批处理脚本,我可以复制所有文件:
@echo off for /f "tokens=* delims=" %%a in ('type "test.txt"') do xcopy /hrkvy "%%a" ".\"
test.txt
包含 4 个具有相对路径和参数的文件:"brazil\206\tri\read.txt" custom "brazil\206\tri\log.i" standard "brazil\207\pass\prog.p" log "brazil\206\bin\read.xml" xml @echo off for /f "tokens=* delims=" %%a in ('type "test.txt"') do xcopy /hrkvy "%%a" ".\"
复制时出错;参数过多之类的错误
如何跳过/忽略参数?
以下是一些示例:
"brazil\206\tri\read.txt" custom #how to skip custom parameter/argument
"brazil\206\tri\log.i" standard #how to skip standard parameter/argument
"brazil\207\pass\prog.p" log #how to skip log parameter/argument
"brazil\206\bin\read.xml" xml #how to skip xml parameter/argument
答案1
如果文本文件中的相对路径本身不包含任何空格,则可以使用 DavidPostill 建议的方式并使用空格作为分隔符:
@echo off
for /f "tokens=1 delims= " %%a in ('type "test.txt"') do xcopy /hrkvy "%%a" ".\"
如果文本内的相对路径本身或要复制的文件名中包含空格,例如:
“巴西 - 里约热内卢\206\tri\read file.txt”自定义
您可以使用引号作为分隔符:
@echo off
for /f tokens^=^1^ delims^=^" %%a in ('type test.txt') do xcopy /hrkvy "%%a" ".\"