2015-12-07 10 views
0

У меня есть пакетный файл, работающий на Windows 7 x86. Я пытаюсь создать соединение с общим ресурсом, а затем, когда это будет сделано для выполнения приложения.Windows пакетный файл для подключения к совместно используемому и выполняющему приложению

net use \\appserver001\mycompany.ptshare\OPS /user:geek [email protected]# /persistent:yes 
echo %errorlevel% 
if errorlevel 2 goto message 
if errorlevel 1 goto message 

start "" "\\appserver001\mycompany.ptshare\OPS\OPSapp.exe" 
echo %errorlevel% 
if errorlevel 2 goto message 
if errorlevel 1 goto message 

goto end 

:message 
cls 
echo ERROR IN CONNECTING TO SERVER 

:end 

Соединения NET USE производятся, поскольку в командном окне говорится: «Команда успешно завершена». Затем, когда он достигает строки для выполнения приложения, я получаю всплывающее сообщение «Недопустимое место для программы!».

Клянусь, я сделал его раньше, но не могу понять, почему он не запускает мое приложение.

ответ

1

"Invalid location for program!" звучит как сообщение об ошибке, которое может исходить от OPSapp.exe. Вы можете убедиться, что, открыв диспетчер задач и проверив, включен ли OPSapp на вкладке «Процессы» при появлении ошибки. Если это не так, вы можете игнорировать остальную часть этого сообщения.

Некоторые программы должны запускаться с пути на основе буквы на диске (например, X: \ etc \ app.exe), а не через UNC-путь (например, \\ srv \ etc \ app.exe). Такая программа может проверить при запуске место, откуда оно было запущено, а затем вывести сообщение об ошибке и выйти, если это UNC-путь, а не на основе буквы диска, которую он ожидает.

Обходной путь в таких случаях состоит в том, чтобы (временно) сопоставить букву диска с общим доступом к сети, а затем использовать ее для запуска программы. Например, в вашем случае замените

start "" "\\appserver001\mycompany.ptshare\OPS\OPSapp.exe" 

с

pushd "\\appserver001\mycompany.ptshare\OPS" 
start "" "OPSapp.exe" 

Если это все еще не работает, то возможно, что OPSapp ожидает больше, чем просто диск, обозначенный буквой пути, возможно, определенной директории структуру где-то, или записи в реестре и т. д. - другими словами, это может быть не portable, чтобы быть просто запущенным по пути.

+0

Возможно, вы правы. Я проверю исходный код, поскольку это приложение, написанное в моем отделе. Самое странное, если я установил переключатель/D, чтобы дать ему начальный путь, он работает. Я сообщу, как только узнаю больше информации. – sinDizzy

+1

Это было само приложение. Разработчик искал, откуда он работает. Поскольку у него не было начального каталога, он предположил, что это был диск sys или C: \, который он не хотел. После добавления стартового каталога в sctipt все сработало. – sinDizzy