Ben*_*ams 12 redirect for-loop dos batch-file
我正在尝试编写一个批处理文件来迭代执行fortran编译的可执行文件.通常会进入Windows命令提示符,键入"Model.exe".这将打开一个dos命令窗口,要求用户在dos提示符下直接在命令窗口中键入所需的文件名.
我想写一个批处理文件,它会为我做这一点,并且还迭代这一步,这样我就可以连续运行10次模拟而不必手动完成.这种shell操作在linux中会很简单,但我没有这个.
我的伪代码看起来像这样:
for/L %% run in(1,1,10)do
(set str = Sim %% run
echo.%str%> input.txt
Model.exe <input.txt)
您可以将其分解为以下步骤:
如果我使用set str = Sim1然后直接将它回显到"input.txt",我可以得到上面的工作,但我不能让它作为循环工作.我错过了什么吗?
最好的祝福,
本
Gar*_*han 24
嗯,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
Run Code Online (Sandbox Code Playgroud)
(当然在这种特殊情况下你可以说,echo Sim%%i > input.txt但我认为你有理由想要通过另一个变量.)
| 归档时间: |
|
| 查看次数: |
41809 次 |
| 最近记录: |