Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB .NET > Передача параметров запуска


Автор: serdesh 6.6.2012, 21:54
Необходимо запустить Run.bat из моего приложения, но перед запуском батника надо перейти в папку расположения Run.bat (путь E:\EXE). Т.е. передать cmd.exe команду "cd E:\EXE"

Пробовал
 
Код

Shell("cmd", "/c cd E:\EXE Run.bat", AppWinStyle.NormalFocus, True)

не фурычит - исключение "TargetInvocationException". Что я делаю не так?

Автор: diadiavova 6.6.2012, 22:32
А зачем ты cmd запускаешь вообще? smile Запускай свой батник по полному пути, то есть имя команды у тебя будет не cmd, а E:\EXE\Run.bat.
Код

Process.Start("E:\EXE\Run.bat", "/c cd" )
Если делаешь через Shell, то будет все аналогично.

Автор: serdesh 6.6.2012, 22:53
Фишка в том, что Run.bat запускает другой батник (особенности сторонней программы). При выполнении
Код

Process.Start("E:\EXE\Run.bat", "/c cd" )

Run.bat (с командой "start Run2.bat") запускает, а второй бат файл (Run2.bat) не находит.
Если exe_шник моей проги кинуть к этим батникам - то все работает: запускается Run.bat, далее  он запускает Run2.bat

При выполнении
Код

Process.Start("E:\EXE\Run.bat", "/c cd E:\EXE" )

тоже не находит Run2.bat




Автор: diadiavova 6.6.2012, 23:19
Просто указывай полные пути к файлам.

Автор: serdesh 6.6.2012, 23:34
Спасибо, работает! Но это скорее всего не все. Завтра на работе протестирую))  smile 

Автор: serdesh 7.6.2012, 12:14
Вопрос снят. дяде Вове респект.

Run.bat изменять нельзя (там куча всяких непонятных параметров)

Создаем батник start.bat :

Код

cd /d E:\EXE
Run.bat

т.е. меняем текущую директорию на директорию с батниками и запускаем run.bat
и его уже запускаем через свою прогу, 

Код

Shell(FullPath & "\start.bat", AppWinStyle.NormalFocus, True)


и уже не важно где находиться запускающая программа.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)