Это - вероятно, пакет, пишущий сценарий 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"
не делает ничего вообще.
Спасибо,
вы делаете это идеально: -)
исполняемый файл, вероятно, ищет этот файл в «текущем рабочем каталоге», который устанавливается, когда вы «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 .
Происходит то, что weirdmodule.exe
ищет в "текущем каталоге" файл .mdb
. Вы можете указать ему, где найти файл .mdb
через параметр командной строки или другой способ настройки (реестр или .ini файл). Как вы укажете местоположение, полностью зависит от программы weirdmodule.exe
.
В остальном, ваш текущий обходной путь - это, вероятно, то, с чем вы застряли.
Что касается вашей проблемы с использованием start.exe
... программа start.exe
имеет очень, очень странное поведение (странное поведение, на мой взгляд), рассматривая первый параметр как "заголовок" для размещения в окне, если (и только если) первый параметр заключен в кавычки. Поэтому у вас есть несколько вариантов:
Не использовать кавычки для указания программы. Это подходит для вас, потому что вам не нужны кавычки (в пути нет пробелов или других специальных символов, которые бы требовали кавычек):
start C:\WeirdProgram\WeirdProgramModule\weirdmodule.exe
В качестве первого параметра задайте пустое (или какое-либо другое строковое) название. Это нужно сделать, если ваш путь требует кавычек:
start "" "C:\WeirdProgram\WeirdProgramModule\weirdmodule.exe"