我正在尝试编写一个批处理文件来迭代执行 Fortran 编译的可执行文件。通常,我们会进入 Windows 命令提示符,输入“Model.exe”。这将打开一个 dos 命令窗口,要求用户在 dos 提示符下直接在命令窗口中键入所需的文件名。
我想编写一个批处理文件来为我完成这一步,并迭代此步骤,以便我可以连续运行 10 次模拟,而不必手动执行。这种 shell 操作在 Linux 中很简单,但我没有可用的。
我的伪代码如下所示:
for /L %%run in (1,1,10) do
(设置str=Sim%%run
echo.%str% > 输入.txt
模型.exe
您可以将其分解为以下步骤:
- 为变量“运行”分配一个值。 (例如1)
- 将其与字符串(“Sim”)连接以创建一个新变量“Sim1”
- 将其回显到文本文件(“input.txt”)
- 从文件“input.txt”中读取变量“Sim1”
- 可执行文件消失并完成其任务。
- 重复步骤 1 -> 5,但使用新变量 calle“Sim2”等。
如果我使用,我可以让上述工作设置 str=Sim1然后直接将其回显到“input.txt”,但我无法让它作为循环工作。我错过了什么吗?
此致,
Ben
呃,cmd.exe 对变量扩展的处理很丑陋。所以,就需要“延迟扩容”,如下:
setlocal enabledelayedexpansion
for /L %%i in (1,1,10) do (
set str=Sim%%i
echo !str! > input.txt
Model.exe < input.txt)
endlocal
(当然在这种特殊情况下你可以说echo Sim%%i > input.txt
但我认为你想通过另一个变量是有充分理由的。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)