我正在尝试从我的代码运行 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/