【问题标题】:Send Command to CMD.exe using Batch file使用批处理文件向 CMD.exe 发送命令
【发布时间】:2016-12-12 14:27:23
【问题描述】:

您好,我正在尝试将命令“shutdown”发送到已打开的命令提示符管理员:使用 BAT 文件的事务服务器,但是当我运行 BAT 文件时没有任何反应。

我关注了这个问题 - How to execute a command in already open CMD window using VBScirpt

有人知道为什么吗?

这是我的代码:

:: s
SendMessage-1.1.2.exe /windowtitle:"Test Server" /message:WM_CHAR /wparam:115 /lparam:1
:: h
SendMessage-1.1.2.exe /windowtitle:"Test Server" /message:WM_CHAR /wparam:104 /lparam:1
:: u
SendMessage-1.1.2.exe /windowtitle:"Test Server" /message:WM_CHAR /wparam:117 /lparam:1
:: t
SendMessage-1.1.2.exe /windowtitle:"Test Server" /message:WM_CHAR /wparam:116 /lparam:1
:: d
SendMessage-1.1.2.exe /windowtitle:"Test Server" /message:WM_CHAR /wparam:100 /lparam:1
:: o
SendMessage-1.1.2.exe /windowtitle:"Test Server" /message:WM_CHAR /wparam:111 /lparam:1
:: w
SendMessage-1.1.2.exe /windowtitle:"Test Server" /message:WM_CHAR /wparam:119 /lparam:1
:: n
SendMessage-1.1.2.exe /windowtitle:"Test Server" /message:WM_CHAR /wparam:110 /lparam:1
:: ENTER
SendMessage-1.1.2.exe /windowtitle:"Test Server" /message:WM_CHAR /wparam:13 /lparam:1

:: ENTER
SendMessage-1.1.2.exe /windowtitle:"Test Server" /message:WM_CHAR /wparam:13 /lparam:1

:: wait for some time (~3 sec) till the program shuts down, if necessary
PING -n 4 localhost 1>NUL

pause
...

【问题讨论】:

  • 我并不是要在这里成为一个痛苦的人。只是有问题,他们应该保持这样,问题。对您有用的方法对其他人可能略有不同,因此他们可以添加答案。在这种情况下,只有一个答案,但并非总是如此。请不要在问题中添加“答案”文本。它有助于避免混淆。谢谢

标签: batch-file cmd windows-server-2012


【解决方案1】:

我不知道您使用的是哪个发送消息。我从 Dostips.com 下载了这个
SendMessage.exe: Access to advanced Windows features 作者:aacini

通过这批,我设法在另一个名为 Test-Msg 的 cmd 窗口中运行 shutdown:

@ECHO OFF

Set /A WM_CHAR=0x0102
Set Msg=%WM_CHAR%

Set Win="Test-Msg"
::          s   h   u   t   d   o   w   n   ret
For %%A in (115 104 117 116 100 111 119 110 13) Do (
echo SendMessage.exe %Win% %Msg% %%A 1
     SendMessage.exe %Win% %Msg% %%A 1
)
Pause
SendMessage.exe %Win% %Msg% 13 1

【讨论】:

  • 感谢您的解决方案。如果我想在 CMD 中显示“按任意键继续”消息后输入另一个返回,我该怎么做? @LotPings
  • 见上面更改的批次。
  • 使用上面的代码,Test-Msg cmd 窗口保持打开 C:/Desktop 有没有办法关闭 Test-Msg 窗口? @LotPings
  • @user1798578 再循环一次并发送 exit[ret] For %%A in (101 120 105 116 13) do ....
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多