0
正如我上面所述Psshutdown拒絕在批處理文件中工作,但在命令提示符下正常工作。該腳本具有一些明確的邏輯來確定什麼樣的PC組等。這裏是腳本:Psshutdown不能在批處理文件中工作
@ECHO OFF
cd "C:\temp\remote enable rdp"
goto :SET
:SET
set /p groupPC=pc or list?:
if %groupPC% == pc goto :PC
if %groupPC% == list goto :LIST
goto :SKIP
:PC
ECHO[
set /p pcName=Which PC?:
psshutdown -c -k \\%pcName% -r
PAUSE
goto :DONE
:LIST
ECHO[
set /p input=Which list?:
set list=%input%.txt
psshutdown @C:\Temp\Lists\%list% -r -f else goto :SKIP
PAUSE
goto :DONE
:SKIP
ECHO[
ECHO You probably typed something wrong. Starting from the top.
PAUSE
ECHO[
goto :SET
:DONE
ECHO Mischief Managed
TIMEOUT /t 10
EXIT /B
每次我運行個人電腦邏輯或列表邏輯提示符只顯示我psshutdown語法使用。我已經嘗試過在互聯網上可以找到的所有語法配置。有什麼想法嗎?
編輯:值得注意的是,我使用的@file語法幾乎與psexec逐字地一起工作。
如果列表不存在,那麼邏輯將停止「else」。無論如何,它會運行「goto:SKIP」,所以我放棄了它。我打算在粘貼之前刪除它。 文件名中沒有空格。使用沒有空格的PC名稱時結果相同。它似乎不喜歡關於批處理文件本身的東西,因爲在cmd提示符下運行完全相同的命令可以正常工作。 – SergeantDoc
嗯。這很奇怪。只是猜測在這裏,但你有沒有嘗試啓用延遲變量擴展?我想知道這是否會影響psshutdown如何通過計算機循環。 – Jared