如何在批处理脚本中复制文件时跳过参数/参数?

如何在批处理脚本中复制文件时跳过参数/参数?
  1. 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" ".\"
    
  2. 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" ".\"

相关内容