Запуск пакетных файлов - CPLEX Interactive Optimizer - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь запустить пакет .sav файлов в CPLEX Interactive Optimizer.IBM предоставляет некоторую документацию здесь .Однако я сталкиваюсь с несколькими проблемами:

  1. После запуска интерактивного оптимизатора CPLEX при перетаскивании моего пакетного файла (batch_trial.bat) из его местоположения (C:\Users\myname\folder name\) в CPLEXкомандная строка (то есть, когда я нажимаю клавишу ввода после CPLEX>C:\Users\myname\folder name\batch_trial.bat, я получаю сообщение об ошибке Command '"C:\Users\myname\folder' does not exist. Type 'help' for a list of commands.. На некоторых форумах я понимаю, что это из-за пробела в folder name, однако в ответах на этих форумах сказано:что использование двойных кавычек решило бы эту проблему. Но я использую двойные кавычки и все еще вижу ошибку.
  2. Я попытался ввести содержимое пакетного файла непосредственно в приглашение CPLEX, вот так (этосодержимое batch_trial.bat, как указано в документации IBM):

    CPLEX> @echo off
    for /L %%i in (1,1,2) do (
    move mytest%i.sav mytest.sav
    cplex < mycplexcommands
    move cplex.log mytest%i.log
    )
    

    Это также не работает: для каждого из @echo, for, move, cplex я получаюПодобные ошибки говорят, что эти команды не существуют. У меня есть два mytest1.sav, mytest2.sav и mycplexcommands.txt в C:\Users\myname\folder name\. Содержимое mycplexcommands.txt:

    read mytest.sav
    optimize
    display solution variables 1-10
    quit
    
  3. Что если у меня нет похожих имен для файлов .sav? Fили, например, если имена файлов apg.sav и hfb.sav, как мне все же заставить их выполняться циклом for в пакетном файле?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Похоже, вы не понимаете разницы между командным файлом (файлом с расширением .bat) и командным файлом, используемым CPLEX Interactive .Пакетный файл можно запустить из командной оболочки Windows .Командный файл CPLEX может быть запущен интерактивно при использовании оператора перенаправления (<, как в вашем примере) или опции -f.Например, можно использовать опции -f, например:

cplex.exe -f mycplexcommands.txt

Для (1) и (2) все не работает, потому что вы пытаетесь запустить пакетный скрипт из CPLEXинтерактивный.Что может сработать, если вместо этого перетащить файл mycplexcommands.txt в интерактив CPLEX.

Для (3) см. Поток stackoverflow по адресу Как выполнить цикл for в командной строке Windows? То есть, оно должно начинаться следующим образом (это не было проверено):

FOR %%i IN (*.sav) DO

Наконец, вас может заинтересовать статья Open LP в интерактивной статье CPLEX на developerWorks..

0 голосов
/ 05 июня 2018

Если вы запускаете свой код из файла .bat, используйте %%i в объявлении цикла FOR и в остальной части кода.

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

Если вы запускаете блок кода непосредственно в shell, тогда используйте %i в объявлении и в коде.

...