我想能够打开cmd并从窗口执行两个命令。 首先,我想导航到一个特定的目录,然后我可以运行第二个命令。 运行一个命令是非常简单的,因为我只需要这么做:
string path = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86) + @"Cisco SystemsVPN Client"; Process process = new Process(); processstartinfo processInfo = new processstartinfo("cmd.exe",@"/c cd " + path ); process.StartInfo = processInfo; process.Start();
但是我不确定如何添加第二个参数,以便在cmd运行第一个命令后运行。 一些研究将我引向了这个代码片段。 我不确定这是否工作,因为我的目标是从cmd启动cisco vpn客户端,这似乎并没有启动它。 这里是代码:
string path = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86) + @"Cisco SystemsVPN Client"; Process process = new Process(); processstartinfo processInfo = new processstartinfo("cmd.exe",@"/c cd " + path + "-t vpnclient connect user validuser pwd validpassword nocertpwd validconnectionentry "); process.StartInfo = processInfo; process.Start();
我曾经从cmd凭借凭据启动VPN客户端,以确保它们是有效的,它的工作,但我不能通过C#编程拉。
问候。
链接器返回“重定位在符号索引处具有无效符号…”
fork()的目的是什么?
System.Management.ManagementException:未find
我怎样才能从另一个(C#)运行第二个应用程序
在Linux 64位上通过值传递结构到P / Invoked库?
在Linux中将filter连接到原始套接字 – C
Windows 8 sdk中的d3dx11.h
有三件事你可以做到,以达到你想要的。 最简单的方法是通过processstartinfo设置进程的工作目录。 这样你只需要执行命令来启动VPN客户端。
第二个选项是重定向进程的输入和输出。 (也通过processstartinfo完成)如果您需要向流程发送更多输入,或者想要检索刚刚启动的流程的输出,则可以执行此操作。
第三个选项是将这两个命令与&符号组合在一起。 使用&符号使cmd.exe按顺序执行这两个命令(请参阅这里了解可用符号的概述)。 使用这个选项会产生如下命令: /c cd path & vpnclient 。
但是因为您只是想使用第一个选项更改进程的工作目录,所以您的代码更具可读性。 因为读取你的代码的人不需要知道bash中的&符号来理解你的代码是干什么的。 使用processstartinfo ( MSDN )的WorkingDirectory ( MSDN )属性更改正在工作的directoy。 看下面的代码:
var processInfo = new processstartinfo("cmd.exe",@"/c vpnclient connect user validuser pwd validpassword nocertpwd validconnectionentry "); processInfo.UseShellExecute = false; processInfo.WorkingDirectory = path;
只有在前一个命令成功的情况下,才可以使用&来执行下一个命令或&&来执行下一个命令。
例子:
dir /b & cls
和
taskkill /f /im explorer.exe && start explorer
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。