Можем ли мы запустить пакетный файл (.bat) из общего пути - PullRequest
9 голосов
/ 21 сентября 2011

У меня есть общий путь (например, // имя_сервера / c $ / batches /) , где сейчас находятся все мои командные файлы. Я пишу веб-приложение на C # для запуска .bat файлов из этого приложения. Я знаю способ сделать это, когда у меня есть физический путь. Но здесь у меня нет физического пути. Возможно ли это сделать.

РЕДАКТИРОВАТЬ # 1

Я запускаю свои файлы bat, просто дважды щелкнув по ним или открыв программу cmd на физическом сервере, а затем перейдите к диску и запустите файл bat.

РЕДАКТИРОВАТЬ # 2

когда я ставлю UNC путь, получаю следующую ошибку

При получении ошибки myprogram.exe не распознается как внутренняя или внешняя команда, работающая с программой или командным файлом. 9009

Ответы [ 3 ]

14 голосов
/ 21 сентября 2011

Пакетные файлы не поддерживают пути UNC как их "текущий каталог". Есть хакерская работа:

pushd "%~dp0"
your batch stuff
popd

% ~ dp0 расширяется до текущего (d) rive / (p) ath / (0) batchfilename


пример:

ки. Простой командный файл:

pushd %~dp0
echo "Hello from batch land"
echo %~dp0
popd

поместите это где-нибудь на сервер и попробуйте запустить его по пути unc:

C:\> \\server\share\test.bat

Вы получите в качестве вывода:

C:\>pushd \\server\share\

Z:\>echo Hello from batch land
Hello from batch land

Z:\>echo \\server\share\
\\server\share\

Z:\>popd

C:\>

Странно, но это работает.

0 голосов
/ 21 сентября 2011

Очевидно, у вас do есть проблема с текущим каталогом.
Файл .bat пытается запустить myprogram.exe из текущего каталога.

Вы можете сделатьПакетный файл оболочки на вашем локальном компьютере, который отображает общий сетевой ресурс:

pushd \\server\c$\dir
call filename.bat
popd

Вы можете поместить этот файл оболочки в любое место, а затем вызвать его из своего кода.

0 голосов
/ 21 сентября 2011

Это называется UNC-путь .
. Вы можете использовать его, как и любой другой путь.

Однако пользователь, выполняющий код ASP.Net, должен был прочитатьдоступ к общему сетевому ресурсу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...