首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >运行批处理文件- CPLEX交互式优化器

运行批处理文件- CPLEX交互式优化器
EN

Stack Overflow用户
提问于 2018-06-06 03:12:19
回答 2查看 437关注 0票数 1

我正在尝试运行批处理的.sav文件在CPLEX交互式优化器。提供了一些文档here。然而,我面临着几个问题:

  1. 启动CPLEX交互式优化器后,当拖放我的批处理文件(batch_trial.bat)从它的位置(C:\Users\myname\folder name\)到CPLEX命令提示符下(也就是说,当我在CPLEX>C:\Users\myname\folder name\batch_trial.bat之后按enter键时,我得到了错误的Command '"C:\Users\myname\folder' does not exist. Type 'help' for a list of commands.我从一些论坛理解这是由于folder name中的“空格”,但是,这些论坛中的答案说使用双引号可以解决这个问题。
  2. 我尝试将批处理文件的内容直接输入到CPLEX提示符中,如下所示(这是batch_trial.bat的内容,正如IBM的文档所建议的那样):

(1,1,2) do中/L %%i的CPLEX> @echo off ( move mytest%i.sav mytest.sav cplex < move命令move cplex.log mytest%i.log )

这也不起作用:对于@echoformovecplex中的每一个,我都会收到类似的错误,指出这些命令不存在。我在C:\Users\myname\folder name\中有两个mytest1.savmytest2.savmycplexcommands.txtmycplexcommands.txt的内容是:

阅读mytest.sav优化显示解决方案变量1-10退出

  • 如果.sav文件没有类似的名称怎么办?例如,如果文件名为apg.savhfb.sav,如何仍然让批处理文件中的For循环执行这两个文件?

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2018-06-06 04:07:06

如果从.bat文件运行代码,请在FOR循环的声明和代码的其余部分中使用%%i

move "mytest%%i.sav" "mytest.sav"

如果直接在shell中运行代码块,则在声明和代码中使用%i

票数 1
EN

Stack Overflow用户

发布于 2018-06-06 05:01:21

听起来您对批处理文件(扩展名为.bat的文件)和CPLEX interactive使用的命令文件之间的区别感到困惑。可以从Windows command shell运行批处理文件。当使用重定向操作符(如您的示例中的<)或-f选项时,can命令文件可以由交互式运行。例如,可以使用-f选项,如下所示:

代码语言:javascript
复制
cplex.exe -f mycplexcommands.txt

对于(1)和(2),由于您试图从CPLEX交互式中运行批处理脚本,因此无法正常工作。如果您将mycplexcommands.txt文件拖放到CPLEX交互式中,则可能会起作用。

对于(3),请参阅How to do a for loop in windows command line?上的stackoverflow线程,即它应该像这样启动(这还没有经过测试):

代码语言:javascript
复制
FOR %%i IN (*.sav) DO

最后,您可能会对developerWorks上的Open LP files in CPLEX interactive文章感兴趣。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50707372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档