Tag: 命令行

等到多个命令行进程完成?

我需要执行许多命令行脚本。 它们目前存储在List 。 我想同时运行它们,并且只有在所有这些步骤完成后才继续执行下一步。 我已经尝试了下面显示的方法,但发现它缺乏,因为最后一个命令不一定最后结束 。 事实上,我发现最后一个命令甚至可以是第一个完成的命令。 所以,我相信我需要像WaitForExit()这样的东西,但是在所有正在执行的进程完成之前它不会返回。 for (int i = 0; i < commands.Count; i++) { string strCmdText = commands[i]; var process = System.Diagnostics.Process.Start("CMD.exe", strCmdText); if (i == (commands.Count – 1)) { process.WaitForExit(); } } //next course of action once all the above is done

C#’System.InvalidOperationException’不能在进程流上混合同步和异步操作

我试图反复读取CMD进程,并重复打印输出,但我正在使用的while循环是在Task.Run内部,所以它不会锁定程序,但是有一些问题我不太了解的ASync和非ASync方法。 我知道我需要在Task.Run中没有pProcess.StandardOutput.ReadToEnd,但是如何在我的代码中实现它呢? 谢谢! Task.Run(() => { while (true) { string output = pProcess.StandardOutput.ReadToEnd(); System.Console.Write(output); } });

为什么C#处理命令行参数不一致?

在C#中,直接从Main()获取命令行参数省略了exe名称,这与C的传统相反。 通过Environment.GetCommandLineArgs获取相同的命令行参数包括它。 我是否因为这种明显的不一致而缺少一些合理的理由? class Program { static void Main(string[] args) { Console.WriteLine(string.Format(“args.Length = {0}”, args.Length)); foreach(string arg in args) { Console.WriteLine(string.Format(“args = {0}”, arg)); } Console.WriteLine(“”); string[] Eargs = Environment.GetCommandLineArgs(); Console.WriteLine(string.Format(“Eargs.Length = {0}”, Eargs.Length)); foreach (string arg in Eargs) { Console.WriteLine(string.Format(“Eargs = {0}”, arg)); } } } 输出: C:\\ConsoleApplication1\ConsoleApplication1\bin\Debug>consoleapplication1 xx zz aa args.Length = 3 […]

在C#中编写批处理脚本的好方法是什么?

我想用C#编写简单的脚本。 我通常会使用.bat或4NT .btm文件。 复制文件,解析文本,询问用户输入等。 相当简单,但在批处理文件中执行此操作非常困难(例如,没有例外)。 我熟悉像AxScript这样的命令行“脚本”包装器,这样我就可以使用它。 我缺少的是简单的文件操作框架。 我希望能够做cd(“..”),copy(srcFile,destFile)类型的function。 我试过的工具: NANT,我们在构建过程中使用它。 不是一个好的脚本工具。 疯狂冗长的XML语法并添加一个简单的函数,您必须编写扩展程序集。 不能内联。 电源shell。 看起来很棒,但我只是无法切换到我的主要shell。 与4NT有太多不同。 无论我做什么都需要从普通的命令提示符运行而不需要特殊的shell来运行它。 PowerShell可以用作脚本执行程序吗? 的Perl / Python的/ruby。 真的讨厌学习一种全新的语言和框架来进行批处理文件操作。 我没有能够把时间花在我需要的时间上。 另外,我们的工具链是99%的.NET商店,我真的想利用我们现有的经验和代码库。 是否有那些试图解决你用过的“在C#中制作批处理文件”问题的框架? 我希望C#/ .NET的强大function具有典型cmd.exe shell语言的立即模式类型function。 我一个人想要这样的东西吗?

如何从命令行构建一个.csproj,并将日志写入指定位置?

虽然’no-log’版本似乎可以顺利运行 “c:\ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ ide \ VCSExpress”Project1.csproj / build 以下失败: “c:\ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ ide \ VCSExpress”Project1.csproj / build /Log=log.txt 显示带有此文本的窗口: 缺少开关参数。 / build开关所需的配置名称。 使用:vcsexpress [solutionfile | projectfile | anyfile.ext] [开关] vcsexpress的第一个参数通常是解决方案文件或项目文件。 如果要在编辑器中自动打开文件,也可以使用任何其他文件作为第一个参数。 当您输入项目文件时,IDE将查找与项目文件的父目录中的项目文件具有相同基本名称的.sln文件。 如果不存在此类.sln文件,则IDE将查找引用该项目的单个.sln文件。 如果不存在这样的单个.sln文件,则IDE将创建一个未保存的解决方案,其默认的.sln文件名与项目文件具有相同的基本名称。 命令行构建:vcsexpress solutionfile.sln / build […]

C# – 是否可以创建一个可以从带命令行的命令行运行的Windows窗体应用程序?

我想要一个包含UI的Windows窗体应用程序,但我希望它从命令行运行一些参数,可能还有/hide或/visible=false选项。 如何读取命令行参数? 并相应调整?

使用Control-C中断C#控制台应用程序时会发生什么?

使用Control-C中断C#控制台应用程序时会发生什么? 这个过程被杀了吗? 内存是否被释放? finally块执行了吗? 数据库连接会发生什么? 如果应用程序是为调试或发布而构建的,或者在Visual Studio内部/外部运行,那么这些是否有所不同?

在OS X终端中构建和运行Monodevelop解决方案

我想从OS X终端构建并运行Monodevelop解决方案。 有什么适当的工具/命令来做到这一点? 我尝试从包含MySolution.sln的目录运行mdtools build 。 这导致-bash: mdtools: command not found 。 我在哪里可以下载并安装mdtools ? (如果这是正确的方法)。 我从IDE构建了解决方案。 然后我尝试使用mySolution.exe从bin/Debug运行它。 这导致错误消息-bash: mySolution.exe: command not found (即使ls显示它存在)。

动态获取命令行输出

我在c#中使用命令行运行一个程序,这个程序产生一些日志,而它运行时需要在它发生变化时显示这些日志。 我编写了以下代码,但是一旦进程被终止,它就会显示所有日志,并且在运行期间我的程序没有响应。 我该怎么解决? 问候 ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo(“cmd”, “/c ” + “C:\\server.py”); Process proc = new Process(); procStartInfo.WindowStyle = ProcessWindowStyle.Hidden; procStartInfo.UseShellExecute = false; procStartInfo.RedirectStandardOutput = true; //procStartInfo.CreateNoWindow = true; proc.StartInfo = procStartInfo; proc.Start(); string output = proc.StandardOutput.ReadToEnd(); proc.WaitForExit(300); LogstextBox.Text = output; 编辑:好吧,我尝试使用OutputDataReceived但它没有显示任何结果,这里是更改的代码: { //processCaller.FileName = @”ping”; //processCaller.Arguments = “4.2.2.4 -t”; this is working processCaller.FileName […]

正确的方法来实现C#控制台应用程序?

将命令行工具实现和构建为C#控制台应用程序的正确方法是什么? 需要解决的问题包括正确解析命令行变量以及输出文本的正确方法。 虽然Console.WriteLine()是输出最明显的选择,但是应该选择写入标准错误流,.Error,.SetErrorStream等的情况是什么? 在将正确的返回代码返回给调用命令时,应用程序退出的正确方法是什么? 如何实现CancelKeyPress事件来中断程序? 它是否仅在单独线程上发生异步操作时使用? 是否有一个简明的C#命令行工具编程指南,或者更好的开源项目或模板,我可以使用它来正确实现一个相对简单的工具?