下面是我当前用来关闭我们局域网上的远程计算机的批处理文件命令。
它的作用如下。
- 我已经在名为的文本文件中指定了远程计算机的 IP 地址 列表.txt
- 我已经添加了一个 IP 作为0.0.0.0位于所有远程计算机 IP 的底部。
- 下面的批处理文件将检查计算机是否可通过 LAN 访问。
- 如果计算机可用,它将关闭远程电脑,否则它将传递给下一个 IP。
- 当批处理文件读取0.0.0.0最后它将自动关闭主计算机。
我无法为超过 7 台远程计算机运行此脚本。如果我在 list.txt 中添加超过 7 个远程 PC IP,批处理文件将挂起,操作无法完成。请告诉我我在代码中是否犯了任何错误,或者我如何解决此问题。
我想至少为 12 台远程 PC 运行此批处理文件
@echo off
setlocal enableextensions enabledelayedexpansion
for /f %%a in (C:\Users\calcopm\Desktop\list.txt) do (
SET IP =%%a
SET C=0
IF %%a equ 0.0.0.0 (
shutdown /s
) ELSE (
ping -n 1 %%a | find "TTL=" >NUL: && SET C=1
IF !C! equ 1 (
psshutdown \\%%a
) else (
ECHO REMOTE %%a IS NOT REACHABLE
)
)
)
答案1
我按如下方式更改了脚本,并使用应用程序将 BAT 转换为 EXE
@echo off
setlocal enableextensions enabledelayedexpansion
for /f %%a in (C:\Users\calcopm\Desktop\list.txt) do (
IF %%a equ 0.0.0.0 (
shutdown /s
) ELSE (
ping -n 1 -w 100
IF errorlevel 1 (
ECHO REMOTE %%a IS NOT REACHABLE
) else (
psshutdown \\%%a
)
)
)
我仍然面临同样的问题。当我使用 exe 文件(使用 BAT 转换为 EXE)运行脚本时,我使用 BAT 文件执行时一切正常。然后我意识到 BAT 到 EXE 转换器存在一些问题,这反过来又影响了 EXE 文件。
然后我使用不同的应用程序将 BAt 转换为 EXE,并且它运行得非常好。
我终于解决了这个问题!!!!!!!!!唷!!!