批处理文件 – for for循环中的多个do命令:将字符串回送到文件,然后重定向到命令窗口

前端之家收集整理的这篇文章主要介绍了批处理文件 – for for循环中的多个do命令:将字符串回送到文件,然后重定向到命令窗口前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图写一个批处理文件来迭代地执行一个fortran编译的可执行文件.通常会进入 Windows命令提示符,键入’Model.exe’.这将显示一个dos命令窗口,要求用户在dos提示符下直接在命令窗口中键入所需的文件名.

我想写一个批处理文件,这将为我做这个一点,并且迭代这一步,这样我可以连续运行10个模拟,而不是手动执行.这种shell操作在linux中是直接的,但是我没有这个可用.

我的伪代码将如下所示:

对于/ L %%在(1,1,10)中运行
(set str = Sim %% run
echo.%str%> input.txt中
Model.exe< input.txt中) 您可以按照以下步骤解决这个问题:
>赋值变量’run’一个值. (例如1)
连接一个字符串(“Sim”)来创建一个新的变量“Sim1”
>将此回调到文本文件(“input.txt”)
>从文件“input.txt”读取变量“Sim1”
>可执行文件消失,做它的事情.
>重复步骤1 – > 5,但用新的变量calle“Sim2”等

我可以得到上面的工作,如果我使用set str = Sim1然后直接回应到“input.txt”,但我不能得到这个循环工作.我错过了什么吗?

最好的祝福,

呃,cmd.exe的变量扩展处理是丑陋的.所以,你需要“延迟扩展”,如下所示:
setlocal enabledelayedexpansion
for /L %%i in (1,10) do (
set str=Sim%%i
echo !str! > input.txt
Model.exe < input.txt)
endlocal

(当然,在这种特殊情况下,您可以只说回声Sim %%我> input.txt,但我认为有一个很好的理由,你想通过另一个变量.)

猜你在找的Windows相关文章