запуская исполняемый файл окон с помощью сценария пакетной обработки, exe не в Программных файлах

Это - вероятно, пакет, пишущий сценарий 101, но я не могу найти четкое объяснение/документацию на том, почему это происходит или если мое обходное решение является на самом деле решением. Таким образом, в основном любая терминология или ссылки на хорошие источники действительно ценятся.

Таким образом, у меня есть программа, я хочу выполниться с помощью сценария пакетной обработки (наряду с несколькими другими программами). Это - единственное где exe не находится в a Program Files папка. Я могу заставить это запускаться как это:

C:\WeirdProgram\WeirdProgramModule\weirdmodule.exe

Но я получаю ошибку вроде:

Run-time Error '3024':

Could not find file
C:\Users\MyUserName\Desktop\ModuleSettings.mdb

Таким образом, кажется, что программа ищет свои файлы настроек от того же местоположения, которое запускает сценарий пакетной обработки. Учитывая, что я наконец заставил все работать путем выполнения следующего:

cd C:\WeirdProgram\WeirdProgramModule\
weirdmodule.exe

Это хорошо работает, и это не конец света, чтобы должным быть пойти этим путем (всего одна дополнительная строка), но я убедил меня, что делаю что-то не так на основе отсутствия основного понимания.

Кто-либо знает или может указать на меня на то, почему это прокладывает себе путь?

О, и выполнение следующего:

start "C:\WeirdProgram\WeirdProgramModule\weirdmodule.exe"

не делает ничего вообще.

Спасибо,

9
задан Anthony 8 March 2010 в 23:50
поделиться

2 ответа

вы делаете это идеально: -)

исполняемый файл, вероятно, ищет этот файл в «текущем рабочем каталоге», который устанавливается, когда вы «cd» переходили к нему раньше.

вы можете настроить рабочий каталог вручную, создав ярлык для командного файла; щелкните правой кнопкой мыши; характеристики.

edit:

вы также можете установить текущий рабочий каталог с помощью команды start :

start "Title" /D "C:\WeirdProgram\WeirdProgramModule\" "weirdmodule.exe"

edit:

Если вы хотите передать параметры, просто добавьте их в имя исполняемого файла как вы бы использовали обычный ярлык:

start "Title" /D "C:\WeirdProgram\WeirdProgramModule\" "weirdmodule.exe" "param1 param2"

или

start "Title" /D "C:\WeirdProgram\WeirdProgramModule\" "weirdmodule.exe param1 param2"

Для справки, синтаксис описан здесь: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en- us / ntcmds.mspx? mfr = true .

17
ответ дан 4 December 2019 в 09:36
поделиться

Происходит то, что weirdmodule.exe ищет в "текущем каталоге" файл .mdb. Вы можете указать ему, где найти файл .mdb через параметр командной строки или другой способ настройки (реестр или .ini файл). Как вы укажете местоположение, полностью зависит от программы weirdmodule.exe.

В остальном, ваш текущий обходной путь - это, вероятно, то, с чем вы застряли.

Что касается вашей проблемы с использованием start.exe... программа start.exe имеет очень, очень странное поведение (странное поведение, на мой взгляд), рассматривая первый параметр как "заголовок" для размещения в окне, если (и только если) первый параметр заключен в кавычки. Поэтому у вас есть несколько вариантов:

  • Не использовать кавычки для указания программы. Это подходит для вас, потому что вам не нужны кавычки (в пути нет пробелов или других специальных символов, которые бы требовали кавычек):

    start C:\WeirdProgram\WeirdProgramModule\weirdmodule.exe
    
  • В качестве первого параметра задайте пустое (или какое-либо другое строковое) название. Это нужно сделать, если ваш путь требует кавычек:

    start "" "C:\WeirdProgram\WeirdProgramModule\weirdmodule.exe"
    
5
ответ дан 4 December 2019 в 09:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: