c# - 来自 C# 代码的 CMD 命令不起作用 (Windows)

标签 c# windows cmd command command-prompt

我正在尝试从我的代码运行 CMD。这是我在命令行中运行的行,它在我手动运行时有效:

C:\Dev\MySite\web\Website\comparison-tool\data\ & node csvToJson.js

这是我的代码:

string commandText = String.Format("/C {0}{1} & node csvToJson.js", root, csvToJsonFolder);
Process.Start("CMD.exe", commandText);

commandText 计算为 /C C:\Dev\MySite\web\Website\comparison-tool\data\& node csvToJson.js

它运行没有错误,但似乎什么也没发生。命令提示符未打开,因此我看不到可能发生的任何错误。该命令应该导致将文件写入特定文件夹,当我手动运行命令时文件被写入,但是当我运行我的代码时文件没有被写入。

编辑:我将代码更改为:

Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.WindowStyle = ProcessWindowStyle.Normal;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = commandText;
startInfo.RedirectStandardOutput = true;
startInfo.UseShellExecute = false;
process.StartInfo = startInfo;
process.Start();

string result = process.StandardOutput.ReadToEnd();

结果只是一个空字符串。没有错误消息或任何内容。

最佳答案

问题出在我的命令文本中,我忘记了“cd”。应该是“/C cd C:\Dev\MySite\web\Website\comparison-tool\data\& node csvToJson.js”

关于c# - 来自 C# 代码的 CMD 命令不起作用 (Windows),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40136633/

相关文章:

windows - 计算机管理管理单元中是否有替代 MSMQ 管理控制台的命令行?

windows - 如果您的贴纸损坏,如何找到 Windows 产品 key

windows - 批处理文件功能执行时间过长

windows - 为什么我们不能使用 CALL :label command in the FORFILES script?

batch-file - 'for' dos 命令中有关 UnxUtils Sed 的一些错误

c# - 如何防止自定义 TryParse 方法可能出现空引用警告?

c# - 在我的库存系统中创建可堆叠的

c++ - 在 Visual C++ 中测量操作速度的最佳方法

C# - 比较字符串时显示差异

c# - 选择多个字段分组并求和