【问题标题】:Different Command prompt windows does not executing the same command不同的命令提示符窗口不执行相同的命令
【发布时间】:2013-06-20 07:57:14
【问题描述】:

我有如下两个命令提示符窗口,

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

--

  1. Administrator:C:\Windows\System32\cmd.exe -- 由 C# 代码打开 (进程.开始)

我正在尝试执行 svn 命令,即考虑svn update 命令。

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

将错误作为“svn”不被识别为内部或外部 命令

我希望它从代码中触发。检查路径变量。 创建了一个bat文件来执行命令。仍然存在相同的错误,手动执行 bat 有效,而从代码中无效。

为什么 cmd 的行为不同?

【问题讨论】:

  • 如果您想在 .NET 应用程序中使用 Subversion,最好将 SharpSVN 集成到您的代码中 - 不要生成其他进程来运行其他进程。另外,添加对svn.exe 的依赖只会导致需要管理和分发更多内容。
  • @alroc,Thaks。从代码调用来看,svn 没有更新。所以只去了bat文件。但它仍然无法正常工作。我购买了 VisualSVN 服务器并安装在我的服务器上。我还是会尝试使用 SharpSVN。

标签: svn cmd


【解决方案1】:

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

鉴于错误消息,几乎可以肯定您的%PATH% 中缺少svn 可执行文件的路径。请尝试以下操作:

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

【讨论】:

  • 谢谢,我查过了。如果我们手动给出命令,则第二个 cmd 正在工作。从代码调用时它不起作用。
  • 那么您的代码似乎有问题。没有看到它,我们无话可说。
  • System.Diagnostics.Process.Start("cmd.exe", "svn update path_to_svn_dir");和 System.Diagnostics.Process.Start(@"c:/file_path/name.bat");两者都没有工作。 bat 文件包含第一行中的命令。
  • 我没有看到你在其中任何一个中设置PATH
  • 在没有设置路径的情况下,两者都可以完美运行,如果手动触发,但仅不能使用代码调用。
猜你喜欢
  • 1970-01-01
  • 2017-09-18
  • 1970-01-01
  • 2015-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多