【发布时间】:2015-01-23 14:29:05
【问题描述】:
以下是我目前用来通过 LAN 网络关闭远程计算机的批处理文件命令。
这就是它的作用。
- 我在名为的文本文件中指定了远程计算机的 IP 地址 list.txt
- 我在所有遥控器的底部添加了一个IP为0.0.0.0 计算机 IP。
- 下面的批处理文件将检查计算机是否可用 局域网。
- 如果计算机可用,它将关闭远程 PC,否则 将传递给下一个 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
)
)
)
【问题讨论】:
-
这无关紧要,因为您似乎没有使用该值,但您的
IP设置不正确 - 字符串集语句的 both 两侧的空格很重要.尝试删除>nul:并查看ping发生了什么。它总是停在同一个条目上吗?尝试洗牌。它在什么命令处停止?尝试删除@echo off(或将其临时更改为on)以查看它停止或循环的位置。
标签: windows batch-file