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