【问题标题】:Redirecting file line by line in MS command prompt在 MS 命令提示符下逐行重定向文件
【发布时间】:2015-11-23 02:06:05
【问题描述】:
我很惊讶我以前从未这样做过,或者如果我使用 vbs、Python 或类似工具“作弊”了。无论如何,在命令外壳中,我想从磁盘加载一个文件,然后对于该文件中的每一行,调用一个程序,其参数等于(或构成文件的一部分)该行
所以我想为文件中的每一行调用一个程序 mycommand。我想将文件输出与 mycommand 的最后一个参数(参数 c)进行文字连接:
mycommand -a arg1 -b arg2 -c 有没有一种简单的方法可以做到这一点,还是我必须编写一个批处理脚本?
谢谢
【问题讨论】:
标签:
windows
batch-file
redirect
command-prompt
【解决方案1】:
在命令行上:
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"