Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 变量在控制+;批处理文件中的C_Variables_Batch File_For Loop - Fatal编程技术网

Variables 变量在控制+;批处理文件中的C

Variables 变量在控制+;批处理文件中的C,variables,batch-file,for-loop,Variables,Batch File,For Loop,我有以下代码,是批处理和linux dos(gawk命令)的混合。我没有源代码(带有选项-d-v-g-r的sortgrad),因此无法对其进行控制。代码运行良好,除非sortgrad冻结,然后我必须使用control+C,它在以下目录中继续工作,但它不会更新sortgrad中的输入选项(变量)。 然后我有两个问题,当需要时,如何在没有控制+C的情况下继续for循环,以及更新变量的问题。谢谢 for/f“eol=”%(测试)中的%%i do( cd%%i echo.2>输入 echo.y>>输入

我有以下代码,是批处理和linux dos(gawk命令)的混合。我没有源代码(带有选项-d-v-g-r的sortgrad),因此无法对其进行控制。代码运行良好,除非sortgrad冻结,然后我必须使用control+C,它在以下目录中继续工作,但它不会更新sortgrad中的输入选项(变量)。 然后我有两个问题,当需要时,如何在没有控制+C的情况下继续for循环,以及更新变量的问题。谢谢


for/f“eol=”%(测试)中的%%i do(
cd%%i
echo.2>输入
echo.y>>输入
echo.1>>输入
回显。%%i.out>>输入
gawk“{print$1}”数据>v
gawk“{print$2}”数据>g
设置/p梯度=g1
echo%grad%| gawk“{print$1+0.03}”>g2
设置/p gmin=结果
cd..)


正在设置变量,但您没有正确访问它们

%grad%
的正常扩展在解析时发生,FOR循环中的整个括号块在一次过程中解析。因此,
%grad%
仍然是一个常量值—循环开始之前存在的值


这就是延迟扩展的设计目的。将
setlocal enableDelayedExpansion
放在顶部,然后作为
访问变量!毕业生

只是一个想法:如果将for循环的语句放入子例程并调用它,会发生什么?ie for/f“eol=“%(测试)中的%%i do”call:sub”批处理使用指令。谢谢如果程序冻结,仍然需要Control+C。有没有办法控制完成一个进程(exe)并继续下一个循环所用的时间(不工作的时间)?
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..)