我很惊讶以前我从来没有这样做过,或者可能是因为我使用vbs,Python或者类似的“欺骗”了。无论如何,在命令shell中,我想从磁盘加载一个文件,然后对于该文件中的每一行,调用一个程序,其参数等于(或形成部分)该行的文件
所以我想为文件中的每一行调用一个程序mycommand。我想在文件输出中使用mycommand的最后一个参数(参数c)进行文字连接:
mycommand -a arg1 -b arg2 -c< myFileWithArgParameterLineByLine.txt
有没有简单的方法可以做到这一点,还是我必须编写批处理脚本?
由于
答案 0 :(得分:2)
在cmd行:
for /f "usebackq delims=" %I in ("txtfile.txt") do mycommand -a arg1 -b arg2 -c %I
在批处理脚本中,执行相同的操作,但使用%%I
。
@echo off
setlocal
for /f "usebackq delims=" %%I in ("txtfile.txt") do mycommand -a arg1 -b arg2 -c %%I
在cmd控制台中执行help for
以获取更多信息。如果您需要显式引用参数C以确保它被视为单个标记,或者参数可能包含特殊字符(如管道或符号),那么-c "%~I"
。
从cmd控制台:
for /f "usebackq delims=" %I in ("txtfile.txt") do mycommand -a arg1 -b arg2 -c "%~I"