从共享应用程序打开命令提示符时出现问题
我有一个已部署在共享服务器上的Windows应用程序。我的应用程序将调用命令提示符来执行一些数据库操作。如果我从共享位置运行应用程序,则会遇到问题。如果我在部署的服务器上运行应用程序,则不会遇到任何问题。我拥有的问题如下。从共享应用程序打开命令提示符时出现问题
我在调用它时向命令提示符传递了一些参数。如果我从共享位置打开应用程序,并且它没有执行任何传递的参数,我会收到以下消息。
CMD.EXE was started with the above path as the current directory. UNC paths are not supported. Defaulting to Windows directory. Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp.
命令提示符调用代码如下: 通常命令参数将包含@"CD \&&C:&&CD\&&CD MyFolder &&CD MySubFolder\App.bat"
ProcessStartInfo procStartInfo = new ProcessStartInfo("cmd", command.ToString());
procStartInfo.RedirectStandardOutput = true;
procStartInfo.UseShellExecute = false;
procStartInfo.CreateNoWindow = true;
Process proc = new Process();
proc.StartInfo = procStartInfo;
proc.Start();
string result = proc.StandardOutput.ReadToEnd();
return result;
我收到了同样的问题,如果我运行.bat文件直接为好。
答案矗立在你的问题:
CMD.EXE开始与当前目录上面的路径。 UNC 路径不受支持。默认为Windows目录。微软 的Windows XP [版本5.1.2600](C)版权所有1985-2001微软公司
http://compnetworking.about.com/od/windowsnetworking/g/unc-name.htm
摘要:UNC路径是网络路径。你的CMD说那些不支持。
很难从您提供的信息中说出来,但是您是否意识到,当您从共享位置运行应用程序时,应用程序在本地客户端计算机上运行,而不是在服务器计算机上运行。
因此,如果您正在运行的应用程序正在查找服务器上的文件,那么如果没有相对于客户端计算机的路径,它将无法找到它。
如果你不试图打开一个文件或类似的东西,那么请给一些额外的信息
我不想打开服务器上的任何文件。我试图打开命令提示符来访问本地客户机上的文件。 –
我试图通过调用命令提示符“@”CD \ && C:&& CD \ && CD MyFolder && CD MySubFolder \ App.bat“” App.Bat位于客户端本地计算机上,它不在服务器上。 谢谢, Venkat Malladi。 –
@Venkat Malladi,你的路径需要像......“C:\ MyFolder \ MySubFolder \ App.bat”......这些“\ &&”部分是什么意思? – musefan
您可以尝试利用PUSHD/POPD命令让Windows的UNC路径映射到临时驱动器:
https://github.com/madskristensen/OpenCommandLine/issues/14#issuecomment-73608382
这应该对蝙蝠的办法上班,不知道你将不得不执行的是.bat文件,而不是CMD,或者如果你能管。
我尝试通过调用命令提示符“@”CD \ && C:&& CD \ && CD MyFolder && CD MySubFolder \ App.bat“”App.Bat在客户端本地计算机上,它不在服务器上运行以下命令。谢谢,Venkat Malladi –