循环命令将命令名称附加到文件

时间:2017-01-10 00:50:44

标签: windows batch-file cmd

我有一个可执行文件,称之为exec1.exe

我有一堆扩展名为.txt的文件,我想在其上运行exec1.exe并将输出重定向到输出文件中某处原始文件名的文本文件。我正在运行命令

for %i in (mydir\\*.txt) do exec1 %i > "%i2.txt"

但是这会尝试在第一个文本文件text1.txt上运行,

exec1 exec1text1.txt > exec1text1.txt2.txt

但我想要

exec1 text1.txt > text1.txt2.txt

知道出了什么问题吗?

1 个答案:

答案 0 :(得分:0)

如果从批处理文件中运行,你可能可以使用({{1>}加倍)

%

注意

我使用for %i in ("mydir\*.txt") do @start "" exec1.exe -y 754 "%i">"%~ni2.txt" 代替%~ni2来写入当前目录。这是因为在阅读%i2时,您的命令将输出到.txt。另一种方法是使用不同的已知路径,例如*.txt