在MS命令提示符中逐行重定向文件

时间:2015-11-23 02:06:05

标签: windows batch-file redirect command-prompt

我很惊讶以前我从来没有这样做过,或者可能是因为我使用vbs,Python或者类似的“欺骗”了。无论如何,在命令shell中,我想从磁盘加载一个文件,然后对于该文件中的每一行,调用一个程序,其参数等于(或形成部分)该行的文件

所以我想为文件中的每一行调用一个程序mycommand。我想在文件输出中使用mycommand的最后一个参数(参数c)进行文字连接:

mycommand -a arg1 -b arg2 -c< myFileWithArgParameterLineByLine.txt

有没有简单的方法可以做到这一点,还是我必须编写批处理脚本?

由于

1 个答案:

答案 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"