我们可以从共享路径运行批处理文件(.bat)

Pra*_*eth 9 .net c# windows asp.net batch-file

我有一个共享路径(比如// servername/c $/batches /),我的所有批处理文件都在这里,我正在用C#编写一个Web应用程序来运行该应用程序的.bat文件.当我有物理路径时,我知道这样做的方法.但在这里,我没有物理路径.有可能做到这一点.

编辑#1

我只需双击它们就可以执行我的bat文件,或者在物理服务器上打开cmd程序,然后导航到驱动器并执行bat文件.

编辑#2

当我放入UNC路径时,得到以下错误

我收到错误myprogram.exe未被识别为内部或外部命令可操作程序或批处理文件.9009

Mar*_*c B 14

批处理文件不支持UNC路径作为其"当前目录".这样做有一个糟糕的工作:

pushd "%~dp0"
your batch stuff
popd
Run Code Online (Sandbox Code Playgroud)

%~dp0扩展为当前(d)rive /(p)ath /(0)批处理文件名


例:

好.简单的批处理文件:

pushd %~dp0
echo "Hello from batch land"
echo %~dp0
popd
Run Code Online (Sandbox Code Playgroud)

将它放在某个服务器上,并尝试通过unc路径运行它:

C:\> \\server\share\test.bat
Run Code Online (Sandbox Code Playgroud)

你会得到输出:

C:\>pushd \\server\share\

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

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

Z:\>popd

C:\>
Run Code Online (Sandbox Code Playgroud)

很奇怪,但它确实有效.