加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

批处理文件 – for for循环中的多个do命令:将字符串回送到文件,

发布时间:2020-12-13 20:08:46 所属栏目:Windows 来源:网络整理
导读:我试图写一个批处理文件来迭代地执行一个fortran编译的可执行文件.通常会进入 Windows命令提示符,键入’Model.exe’.这将显示一个dos命令窗口,要求用户在dos提示符下直接在命令窗口中键入所需的文件名. 我想写一个批处理文件,这将为我做这个一点,并且迭代这
我试图写一个批处理文件来迭代地执行一个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,但我认为有一个很好的理由,你想通过另一个变量.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读