c#中启动cmd.exe后,输入telnet命令,返回telnet不是内外部命令

weixin_46038278 2022-03-13 15:03:53

c#中以管理员身份启动了cmd.exe,然后输入了telnet命令,返回不是内外部命令,但是自行手动启动cmd后,输入telnet命令是正确执行的,这是为什么,感觉在程序中启动的cmd和手动启动的cmd哪里不一样?,下面是程序中启动cmd的代码,求大神指教

 p = new Process();
 p.StartInfo.FileName =  @"C:\Windows\System32\cmd.exe";
 p.StartInfo.WorkingDirectory = @"C:\Windows\System32";
 p.StartInfo.UseShellExecute = false;
  p.StartInfo.RedirectStandardError = true;
  p.StartInfo.RedirectStandardInput = true;
  p.StartInfo.RedirectStandardOutput = true;
 p.StartInfo.CreateNoWindow = false;
 p = Process.Start(p.StartInfo);

...全文
679 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
secretpp 01-06
  • 打赏
  • 举报
回复

我也遇到此问题,请问你解决了没

secretpp 01-06
  • 举报
回复
@secretpp 我已解决了 2024-1-6。这个是因为你编译时 选了×86,你选any CPU就可以了,你是恰 巧 在64位机器上 运行 32位的telnet 但你机器上正好是64位的telnet 所以产生这个问题 /// <summary> /// cmd.exe执行 调用 cmdRunTelnet("http://10.74.2.147:3380/udsp/post/v1/GetCheckData") /// http://10.194.129.36:8088/cytyb_ws/HandleData // http://10.74.2.147:3380/udsp/post/v1/GetCheckData /// </summary> void cmdRunTelnet(string url) { /// help cmd /// C 执行字符串指定的命令然后终止 /// K 执行字符串指定的命令但保留 /// S 修改 / C 或 / K 之后的字符串处理(见下) string ip_webservice = url; char[] c = { ':', '/' }; string[] ip_arr = ip_webservice.Split(c); string ip_adddress = ip_arr[3]; string ip_port = ip_arr[4]; string commentPing = "cmd.exe"; string pi_parameter = @" /k telnet " + ip_adddress + " "+ ip_port; string cmdReturn = exeCMD(commentPing, pi_parameter); if (string.IsNullOrEmpty(cmdReturn)) { } else { MessageBox.Show(cmdReturn); } }
HarriLiu 2022-06-14
  • 打赏
  • 举报
回复

这个问题解决了吗?也是遇到同样的问题

zara 2022-03-13
  • 打赏
  • 举报
回复

手工运行 telnet 后,“任务管理器”看看 telnet.exe 所在目录,然后你的程序的 cmd.exe 里看看这个目录是不是在 path 环境变量里,没在就加进去或用完全路径来启动 telnet.exe

weixin_46038278 2022-03-14
  • 举报
回复
@weixin_46038278 而且所在目录是在path环境变量里的
secretpp 01-06
  • 举报
回复
@weixin_46038278 试都 不试下 ,瞎回答 问题 ,不懂装懂

6,185

社区成员

发帖
与我相关
我的任务
社区描述
windows网络管理与配置
社区管理员
  • 网络管理与配置社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧