【发布时间】:2017-03-13 09:27:37
【问题描述】:
我尝试通过 c# 代码在 cmd.exe 中运行以下命令。
- mkdir 我的文件夹
- cd 我的文件夹
- git 初始化
- git 远程设置-url 来源https://gitlab.company.com/testgroup/server.git
- git fetch --dry-run
- cd ..
- rmdir 我的文件夹
我不知道如何在单个 Process.Start(); 中传递所有参数。运行第 4 个命令后,我将输出 string 并对 string 进行一些操作。
我试过这样
const string strCmdText = "/C mkdir myfolder& cd myfolder& git init & git remote set-url origin https://gitlab.company.com/project.git & git fetch --dry-run & cd .. & rmdir myfolder";
Process.Start("CMD.exe", strCmdText);
以上命令正常工作。但我不知道如何从cmd.exe 获取执行文本。我想要的文字如下图所示。
我使用下面的代码来获得输出string。但是在读取输出(string output = cmd.StandardOutput.ReadToEnd();)的那一行,执行停止了。我的意思是它不会进入下一行,也不会终止程序。只需显示缺少屏幕。
Process cmd = new Process();
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.Arguments = "/C mkdir myfolder& cd myfolder& git init & git remote set-url origin https://gitlab.company.com/project.git & git fetch --dry-run & cd .. & rmdir myfolder";
cmd.StartInfo.UseShellExecute = false;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.RedirectStandardError = true;
cmd.Start();
string output = cmd.StandardOutput.ReadToEnd();
Console.WriteLine(output);
如何获得输出string?
【问题讨论】:
-
是的。但不用于清除我的异常。我的输出字符串将是“”。
-
总是可以通过 IO 命名空间在 C# 中执行 mkdir/rmdir/cd
标签: c# .net string windows cmd