FOR ...批量生产多次输出

时间:2017-06-07 16:54:45

标签: batch-file cmd

我正在尝试创建输出文件;输出文件的每一行都需要包含一个程序的结果(几个特殊字符)加上后面的解释性字符串,但是我无法输出正确的输出。我确信这很简单,但我对cmd没有太多经验。

第一个FOR从我的程序创建特殊输出(一种“#34FF123x”字符串,它是一个条形码程序)。第二个FOR只是生成特殊字符串的数字的ECHO。当然,有两个单独的FORs,我将在角色上有两个不同的组,我把它们放在这里只是为了解释。感谢您提出任何解决方案。结果也可以在两个不同的行上,例如从Program中交替一个,下一个是生成前一个的字符串。欢呼声。

FOR / L %% G IN(1,1,5)DO程序%% G>> output.file.txt

FOR / L %% i IN(1,1,5)DO ECHO %% i>> output.file.txt

2 个答案:

答案 0 :(得分:0)

FOR命令未完整记录;我没有能够找到任何正式的参考(只是大量的示例代码)来分组命令,也没有找到一种方法来抑制输出中的任何EOL,但是你可以组合命令 - 和在这种情况下,从programecho获取交替的行:

for /L %%i in (1,1,5) do (
    program %%i >> output.file.txt
    echo %%i >> output.file.txt
)

如果program n输出this is n,那么在运行此内容后,output.file.txt的内容应为

this is 1
1
this is 2
2
this is 3
3
this is 4
4
this is 5
5

这不是相当你所说的你喜欢什么,但似乎与你所说的是可以接受的。

答案 1 :(得分:0)

> outputfile.txt (
    for /l %%i in (1 1 5) do (
        for /f "delims=" %%a in ('program %%i') do echo %%a %%i
    )
)

将两个值放在同一行中的最简单方法可能是使用program命令处理for /f的输出(将检索“string”到可替换参数中)然后echo检索到的值和当前索引。