我正在使用Windows 7.
我有一个程序叫做optAlg.exe我在批处理脚本的for循环中调用,我想将输出重定向optAlg.exe到%outputFile%.当我在批处理脚本中运行以下循环时,输出将optAlg.exe写入控制台.
for %%i in (data/5Node/*.dat) do @(
set inputFile=%%i
set outputFile="%inputFile%.out"
optAlg %inputFile% 500 ^> %outputFile%
)
Run Code Online (Sandbox Code Playgroud)
如何将其输出到文件而不是控制台?
编辑:我正在尝试做的事情就是打电话
optAlg 1.dat 500 > 1.dat.out
optAlg 2.dat 500 > 2.dat.out
...
optAlg n.dat 500 > n.dat.out
Run Code Online (Sandbox Code Playgroud)
.dat我所拥有的文件是1.dat通过命名的n.dat
您需要使用setlocal enabledelayedexpansion和相关!var!语法.
setlocal enabledelayedexpansion
for %%i in (data/5Node/*.dat) do (
set inputFile=%%i
set outputFile="!inputFile!.out"
optAlg "!inputFile!" 500 > !outputFile!
)
Run Code Online (Sandbox Code Playgroud)
使用>>"file.txt"并删除^
编辑:您还需要使用延迟扩展,或者这应该工作:
for %%i in (data\5Node\*.dat) do optAlg "%%i" 500 >>"%%~ni.out"
Run Code Online (Sandbox Code Playgroud)