2013-06-20 54 views
1

我两个命令提示符窗口如下,不同的命令提示窗口中不执行相同的命令

  1. 管理员:命令提示符 - 手动打开

-

  1. 管理员:C:\ Windows \ System32 \ c md.exe - 用C#代码 (的Process.Start)

我想执行的svn命令,即开放的考虑svn update命令。

该命令在我手动打开的第一个cmd中成功执行。 但是,相同的命令不会在由C#代码打开的第二个cmd窗口中执行。

给误差为“SVN”不被识别为内部或外部 命令

我想这从代码触发。检查路径变量。 创建一个bat文件来执行命令。同样的错误仍然存​​在,执行蝙蝠手动工作,而从代码不工作。

为什么cmd的行为不同?

+1

如果你想使用Subversion从.NET应用程序中,这是更好地整合[SharpSVN(http://sharpsvn.open.collab.net/)到你的代码 - 唐”生成其他进程来运行其他进程。另外,在'svn.exe'上添加依赖关系只会导致更多内容需要管理和分发。 – alroc

+0

@alroc,Thaks。从代码调用中,svn没有更新。所以只有去了bat文件。但它仍然无法工作。我购买了VisualSVN服务器并安装在我的服务器上。不过我会试用SharpSVN。 – user9371102

回答

1

你说你检查了%PATH%变量,但你没有说你如何检查它以及结果是什么。当您在命令窗口中运行echo %PATH%时,您会得到什么结果2 nd

鉴于该错误消息,您几乎可以确定可执行文件的路径从%PATH%中丢失。请尝试以下操作:

set PATH=%PATH%;C:\path\to\svn\dir 
svn update 
+0

谢谢,我查过了。如果我们手动输入命令,则第二个cmd正在工作。从代码调用时它不工作。 – user9371102

+1

然后看起来你的代码有问题。没有什么我们可以告诉你没有看到它。 –

+0

System.Diagnostics.Process.Start(“cmd.exe”,“svn update path_to_svn_dir”); 和 System.Diagnostics.Process.Start(@“c:/file_path/name.bat”);两个都没有工作。 bat文件在第一行包含命令。 – user9371102