如何访问 .batch 打开的 CMD?

Posted

技术标签:

【中文标题】如何访问 .batch 打开的 CMD?【英文标题】:How do I access CMD opened by .batch? 【发布时间】:2021-04-01 21:04:50 【问题描述】:

到目前为止我的程序:

using System;
using System.Diagnostics;


const string batDir = @"C:\Program Files (x86)\Microsoft Visual 
                        Studio\2019\Professional\Commom7\Tools";
var process = new Process StartInfo = WorkingDirectory = batDir, FileName = "VsDevCmd";
process.start();

var modules = process.Modules;
foreach (ProcessModule processModule in modules)

  //In here you can find the cmd.exe which gets executed by the .batch
  //For example here you could access the memory address of the cmd prompt

我想要做的是访问由我启动的 .batch 文件准备和执行的命令提示符。当您像往常一样向进程发出命令时,它无法检测到它,因为该命令是在 .batch 启动 cmd-Prompt 以识别它之前执行的。

【问题讨论】:

【参考方案1】:

要自动附加到现有控制台,必须由附加到该控制台的程序启动控制台程序。

对于由 GUI 程序启动的程序

如果一个控制台程序将被赋予一个新的控制台。

如果是 GUI 程序,它不会获得控制台,但是它可以使用 AttachConsole API 调用来附加到任何控制台。

编译为控制台程序。

【讨论】:

以上是关于如何访问 .batch 打开的 CMD?的主要内容,如果未能解决你的问题,请参考以下文章

怎样在CMD访问FTP?

如何通过cmd查看IIS站点

访问作业参数 Spring Batch

batch - 打开文件夹的"start"命令

如何用ip访问网站

尽管用户角色,AWS Batch 作业在 S3 上被拒绝访问