【问题标题】:Cannot use PStool for more than 7 PCs over LAN Network不能通过 LAN 网络对超过 7 台 PC 使用 PStool
【发布时间】:2015-01-23 14:29:05
【问题描述】:

以下是我目前用来通过 LAN 网络关闭远程计算机的批处理文件命令。

这就是它的作用。

  1. 我在名为的文本文件中指定了远程计算机的 IP 地址 list.txt
  2. 我在所有遥控器的底部添加了一个IP为0.0.0.0 计算机 IP。
  3. 下面的批处理文件将检查计算机是否可用 局域网。
  4. 如果计算机可用,它将关闭远程 PC,否则 将传递给下一个 IP。
  5. 当批处理文件最后读取 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


【解决方案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,它就像一个魅力一样工作。

我解决了问题 ATLAST!!!!!!!!!!!!!呼!!!!!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-10
    • 2012-10-21
    • 1970-01-01
    • 1970-01-01
    • 2014-09-21
    • 1970-01-01
    • 2018-02-06
    • 1970-01-01
    相关资源
    最近更新 更多