Tag: cmd

在C#中执行Quser windows命令; 将结果返回给String

我试图通过C#执行Quser windows命令来返回登录服务器的详细信息,但无法使其工作。 我已经尝试过使用一些指南,但我还没有看到任何这个例子。 在该分钟,该命令返回以下内容: “Microsoft Windows [版本6.1.7601]版权所有(c)2009 Microsoft Corporation。保留所有权利.C:\ Program Files(x86)\ Common Files \ Microsoft Shared \ DevServer \ 10.0>” String CmdText = @”quser /server:uk-dev-test-01″; Process proc = new Process { StartInfo = new ProcessStartInfo { FileName = “cmd.exe”, Arguments = CmdText, UseShellExecute = false, RedirectStandardOutput = true, CreateNoWindow = true } }; proc.Start(); String […]

如何在C#中执行cmd,然后在同一窗口中执行下面的另一个命令?

正是我想要完成的是一个基本上在1次点击中设置活动分区的程序,节省了使用cmd提示等的工作时间和技巧。 我查看了System.Management名称空间,但无法解决如何使用它:( 所以我已经使用CMD,我有一个用C#编写的模块应用程序,基本上我想运行“DISKPART”,然后在cmd窗口中启动diskpart,然后我想要它“选择磁盘0”然后“select partition 1”最后是“active”。 在CMD中这样做你自己工作得很好,但有一个应用程序,它被certificate是尴尬的:(我设法让它做的是在一个窗口中使用Process.Start运行DiskPart,然后让它打开一个新窗口并运行下一个一段代码,但因为新窗口没有运行diskpart cmd它不起作用> 🙁 有什么建议? 谢谢! 灰

在C#中,如果程序不断输出,您如何从DOS程序中读取?

我找到了很多关于如何执行cmd.exe并执行命令的编码示例,甚至执行nslookup和交互,但我遇到的问题是使用特定的dos程序,当它启动时,它不会停止“输出” 。 这里有一些代码,我会发表评论和我从C#得到的错误 这是我如何以更高级的方式设置它,以便我可以从事件的程序接收输出 public void StartApplication(string appNameAndPath) { StreamReader outputStream; Process p = new Process(); p.StartInfo.FileName = appNameAndPath; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.UseShellExecute = false; p.StartInfo.CreateNoWindow = false;//for now just so I can see it p.Start(); //here is my advanced example if(advanced == true) { outputStream = p.StandardOutput; DoReadOutPut(); } else {//here is a simple […]

Process.Start的转义字符串

如何转义未知字符串以传递给Process.Start作为参数? 我目前正在逃避基本的引号和反斜杠,但最近我的输入已经开始包含诸如http://www.fileformat.info/info/unicode/char/ff02/index.htm (全宽引号)之类的内容。 所以我的问题是,我需要逃避什么才能安全地传递一个字符串作为Process.Start的参数? 编辑:所以我需要澄清一下。 我真正需要的是一个必须在cmd.exe的带引号的字符串(“foo”)中转义的所有字符的列表。 我最初处理双引号字符以及反斜杠字符,但我最后有一些输入包含一个全宽带引号(如上所述),它也需要转义。 所以问题是,对于使用Process.Start传递给cmd.exe的带引号的字符串参数,我还需要转义什么?

C#Process Start需要带双引号的参数 – 它们会消失

我正在尝试使用Process.Start(ProcessStartInfo)从c#运行cmd行应用程序; 问题是,cmd行应用程序是一个matlab独立的.exe并且具有可选参数,这意味着您可以在cmd行上传递它们: app.exe “optional1” optional1value “optional2″ optional2value 其中optional1value是整数或字符串等。 我们遇到的问题是双引号不是作为“optional1”参数的一部分传递的,所以我相信cmd.exe会得到类似的东西: app.exe optional1 optional1value optional2 optional2value 或类似的东西,matlab的解析器显然会被混淆。 我试过了: @”””optional1″” optional1value “”optional2″ optional2value””” 正如其他一些关于cmd行参数中的双引号的SO问题所建议但它似乎对我没有用,也没有: “\”optional1\” optional1value \”optional2\” optional2value\”” 我写了一个小的c#命令行.exe来打印出它得到的参数。 如果我将命令行参数放在VS Project-> Debug区域并运行它然后用双引号打印它们但由于所有转义等等,当我在代码中执行此操作时,.exe打印参数而不带任何双引号。 我发现这篇文章可能是.NET 3.5的cmd解析器中的一个错误,但似乎找不到可行的解决方案。 有没有人有任何想法? 感谢您的时间, 雨披 PS有没有办法看到使用Process.Start()发送参数时cmd.exe得到了什么? 我让我的进程打开了一个cmd窗口但是很高兴看到cmd.exe行如下所示:“app.exe optional1 optional1value”等。 再次感谢。

使用Process.Start(),当/ K参数不起作用时,如何保持cmd提示符打开?

可能重复: 在Process.Start(..)期间保持外部命令窗口打开的任何方法? 我以前见过这篇文章,但由于某种原因,这些解决方案对我不起作用。 使用Process.Start(),当/ K参数不起作用时,如何保持cmd提示符打开? 还没有“WaitForExit”方法可用。 ProcessStartInfo processInfo = new ProcessStartInfo(“cmd.exe”, “/K ” + “C:\\Windows\\System32\\” + “takeown.exe”); processInfo.Verb = “runas”; processInfo.Arguments = “/F \”C:\\Program Files(x86)\\Borland\” /R /DY”; Process.Start(processInfo); 我想看到的是该过程是否成功处理。 谢谢

以编程方式添加路线

我编写了一个简单的实用程序,为特定接口添加路由。 代码很简单: using System; using System.Diagnostics; using System.Net.NetworkInformation; using System.Text; class Program { static void Main(string[] args) { const string firstConnection = “xxxx.yyyyy”; const string routeAddMask = “route add XX.XX.XX.XX mask 255.255.255.255 XXX.XXX.XXX.XXX METRIC 99 IF {0}”; StartProcess(“rasdial”, firstConnection); var interfaceId = GetInterfaceId(firstConnection); string routeAdd = string.Format(routeAddMask, interfaceId); StartProcess(“route”, routeAdd); } private static int GetInterfaceId(string […]

使用C#中的参数执行命令行.exe

我正在尝试使用C#中的参数执行命令行程序。 我本以为,在C#中站起来并实现这一目标将是微不足道的,但即使使用本网站及其他网站上提供的所有资源,它也具有挑战性。 我很茫然,所以我会提供尽可能详细的信息。 我当前的方法和代码在下面,在调试器中变量命令具有以下值。 command = “C:\\Folder1\\Interfaces\\Folder2\\Common\\JREbin\\keytool.exe -import -noprompt -trustcacerts -alias myserver.us.goodstuff.world -file C:\\SSL_CERT.cer -storepass changeit -keystore keystore.jks” 问题可能是我如何调用和格式化我在该变量命令中使用的字符串。 关于可能出现什么问题的任何想法? ProcessStartInfo procStartInfo = new ProcessStartInfo(“cmd”, “/c ” + command); procStartInfo.RedirectStandardOutput = true; procStartInfo.UseShellExecute = false; procStartInfo.CreateNoWindow = true; Process process = new Process(); process.StartInfo = procStartInfo; process.Start(); string result = process.StandardOutput.ReadToEnd(); Console.WriteLine(result); 一旦完成,我就不会在变量结果中找回任何信息或错误。

以编程方式创建/运行命令文件

我正在尝试创建一个cmd文件,它将安装.msi,然后通过C#代码执行该cmd文件。 如果我使用Visual Studio中的f5或control + f5运行它,代码可以正常工作。 但是,一旦我将代码打包在.msi文件中并安装它(它是一个wpf应用程序),当它执行相关代码时,它会打开命令窗口,但它不会执行命令。 相反它说:“C:\ Program不被识别为内部或外部命令……”我知道这个错误意味着文件路径周围没有引号,但事实并非如此,正如您在下面的引号中看到的那样在那儿。 此外,如果我转到程序文件目录,则存在Reinstall.cmd文件并在其中包含引号。 我甚至可以双击生成的Reinstall.cmd文件,它会执行得很好。 我在这里想念的是什么? 这是代码: private string MSIFilePath = Path.Combine(Environment.CurrentDirectory, “HoustersCrawler.msi”); private string CmdFilePath = Path.Combine(Environment.CurrentDirectory, “Reinstall.cmd”); private void CreateCmdFile() { //check if file exists. if (File.Exists(CmdFilePath)) File.Delete(CmdFilePath); //create new file. var fi = new FileInfo(CmdFilePath); var fileStream = fi.Create(); fileStream.Close(); //write commands to file. using (TextWriter writer […]

从C#打开两个控制台窗口

[DllImport(“kernel32.dll”)] private static extern Int32 AllocConsole(); 我可以使用此命令打开cmd.exe。 但我只能打开一个控制台窗口并写入其中。 我怎么能打开另一个? 打开两个控制台窗口是否有干净,快速的解决方案?