2015-01-17 55 views
0

以下是我目前用來通過LAN網絡關閉遠程計算機的批處理文件命令。不能在局域網上使用超過7臺PC的PStool

它的功能如下。

  1. 我指定的文本文件名爲 遠程計算機的IP地址LIST.TXT
  2. 我在所有遠程計算機 IP地址的底部增加了一個IP爲0.0.0.0
  3. 下面的批處理文件將檢查通過 LAN的計算機是否可用。
  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 
) 
) 
) 
+1

由於您看起來沒有使用該值,但您的'IP'設置不正確 - 空格對於字符串集語句的**兩側都很重要。嘗試刪除'> nul:'並查看'ping'發生了什麼。它是否總是停留在同一個條目上?嘗試洗牌。它停止了什麼命令?嘗試刪除「@echo off」(或暫時將其改爲「on」)以查看它停止的循環或循環。 – Magoo

回答

0

我改變了我的腳本如下,並從BAT轉換的最低此批處理文件使用一個應用程序

@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一樣的問題。當我使用EXE文件(使用BAT轉換爲EXE)運行腳本時,我使用BAT文件執行它很好。然後我意識到BAt到EXE轉換器有一些影響EXE文件的問題。

然後,我將BAt轉換爲EXE與不同的應用程序和它工作像一個魅力。

我解決了這個問題ATLAST !!!!!!!!!!!!!唷!!!!!

相關問題