如上所述,Psshutdown拒绝在批处理文件中工作,但在命令提示符下工作正常。该脚本有一些轻量逻辑来确定哪些PC组等。这是脚本:
@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
每次运行PC逻辑或List逻辑时,提示只显示psshutdown语法使用。我已经尝试了我可以在互联网上找到的每种语法配置。有什么想法吗?
编辑:值得注意的是,我正在使用的@file语法几乎与psexec一起使用。
答案 0 :(得分:0)
有两件事对我很突出。如果你的文件名中有空格,那就会产生你提到的结果。尝试在文件路径周围加上引号。
我也无法理解"否则"行结束时的陈述。这是一个错误吗?它应该与下面的行一起工作。
psshutdown @"C:\Temp\Lists\%list%" -r -f