在使用 CMD 启动的进程内运行命令

Posted

技术标签:

【中文标题】在使用 CMD 启动的进程内运行命令【英文标题】:Run command inside a process started using CMD 【发布时间】:2021-07-18 22:44:52 【问题描述】:

我想编写一个批处理文件来运行特定的进程,并在进程本身内部运行一个命令,该命令在命令提示符内运行,然后在控制台上显示结果。

通常,我会打开 CMD,输入进程名称/路径:ggsci.exe,一旦它运行,我会在其中运行命令(它实际上连接到 Oracle DB),例如:

我如何创建一个批处理文件也一样,这会运行进程本身:

@ECHO OFF
ECHO running:
cd /d d:\
ggsci.exe

如何给 ggsci.exe 另一个命令?

另一个选项是使用 PsExec.exe 运行相同的选项。

【问题讨论】:

【参考方案1】:

根据Oracle Golden Gate manual:

输入脚本

在操作系统的命令行中使用以下语法。

ggsci < input_file

更新

这可能会以同样的方式工作:

echo SELECT * from my.table|ggsci

您甚至可以将变量用于动态脚本,但您必须处理特殊符号的转义。

其他选项是生成一个临时文件然后使用它:

echo SELECT * from my.table >temp_file
ggsci < temp_file
del /q /f temp_file

你甚至可以使用模板files and replace the content

【讨论】:

完美运行,谢谢,尝试传递一个简单的命令“info all”而不是有一个文件,知道吗? 我通过保存到 %temp% 目录尝试了同样的方法,但我无法实现它,现在一切都很好。谢谢!

以上是关于在使用 CMD 启动的进程内运行命令的主要内容,如果未能解决你的问题,请参考以下文章

8Dockerfile详解

当使用 Java 命令运行 .class 文件的时候,就相当于启动了一个 JVM 进程,如何理解?

如何使用 psexec 向远程计算机上启动的 cmd.exe 提供多个命令

[转帖]Linux ps 命令查看进程启动及运行时间

终止正在运行的子进程调用

cmd命令行带参启动程序