Batch file 批处理侦听ping以关闭

Batch file 批处理侦听ping以关闭,batch-file,ping,shutdown,packets,listen,Batch File,Ping,Shutdown,Packets,Listen,我正在尝试创建一个批处理文件,它正在等待来自网络的特定ip的6个数据包ping。当机器收到6个回显请求时,应自动关闭。我将使这个批处理文件在启动时作为服务运行,我不需要这部分的帮助。有人能帮我做一下监听部分吗?作为替代方案,为什么不在“监听”脚本不断寻找的特殊位置(甚至可能有特殊内容)创建一个文件,一旦存在,就删除该文件并关闭机器 这至少可以批量完成 SETLOCAL SET "HANDSHAKE=%WINDIR%\System32\SPECIAL\SHUTDOWN_NOW" :LOOP IF

我正在尝试创建一个批处理文件,它正在等待来自网络的特定ip的6个数据包ping。当机器收到6个回显请求时,应自动关闭。我将使这个批处理文件在启动时作为服务运行,我不需要这部分的帮助。有人能帮我做一下监听部分吗?

作为替代方案,为什么不在“监听”脚本不断寻找的特殊位置(甚至可能有特殊内容)创建一个文件,一旦存在,就删除该文件并关闭机器

这至少可以批量完成

SETLOCAL
SET "HANDSHAKE=%WINDIR%\System32\SPECIAL\SHUTDOWN_NOW"
:LOOP
IF EXIST "%HANDSHAKE%" (
    DEL /Q "%HANDSHAKE%"
    shutdown -s -f -t 0
)
PowerShell -NoProfile -Command "Sleep(60);"
GOTO :LOOP
Windows没有本机睡眠命令。其他人认为开销比PowerShell少的另一种策略(虽然,因为它只是休眠,开销可能并不重要)是ping本地主机适配器时间(例如,
ping-n 60 127.0.0.1


当然,整个脚本都可以在PowerShell中编写,但随后您将不得不处理执行策略和其他事情。

我脑子里只想了几个问题:数据包到达的时间是否重要?安全性有多重要(IP可以伪造)?为什么是ping而不是更安全的方式?大约10秒。我不在乎安全。我只想用6个echo请求关闭这台机器。好了,CMD无法按照您描述的方式访问网络堆栈。可能有,但这不是小事。