【发布时间】:2014-12-15 01:52:43
【问题描述】:
我有以下代码,混合了批处理和 linux-dos(gawk 命令)。我没有源(带有选项 -d -v -g -r 的 sortgrad),所以无法控制它。该代码运行良好,除非 sortgrad 冻结,然后我必须使用 control+C 并继续在以下目录中工作,但它不会更新 sortgrad 中的输入选项(变量)。 然后我有两个问题,在必要时如何在没有 control+C 的情况下继续 for 循环以及更新变量的问题。谢谢
for /f "eol= " %%i in (tests) do (
cd %%i
echo.2 > input
echo.y >> input
echo.1 >> input
echo.%%i.out >> input
gawk "{print $1}" data > v
gawk "{print $2}" data > g
set /p grad= < g
set /p vel= < v
echo %grad% | gawk "{print $1-0.03}" > g1
echo %grad% | gawk "{print $1+0.03}" > g2
set /p gmin= < g1
set /p gmax= < g2
cmd.exe /C "sortgrad -d vanloc.dvr -v %vel% 7.0 -g %gmin% %gmax% -r 1.70 1.80" < "input" > result
cd..)
【问题讨论】:
-
只是一个想法:如果将 for 循环的语句放在子例程中并调用它会发生什么?即 for /f "eol=" %%i in (tests) do 'call :sub'
标签: variables batch-file for-loop