有谁可以解释这里发生了什么?
如果在我们域上的计算机上运行此操作而不将其升级为管理员,则会删除所有桌面图标。我不知道怎么或为什么?
@echo off
net stop spooler
IF NOT exist C:\Windows\System32\spool\PRINTERS\*.shd echo NO DOCUMENTS IN QUEUE ONCE THE SPOOLER HAS STARTED TRY PRINTING AGAIN
IF NOT exist C:\Windows\System32\spool\PRINTERS\*.shd msg * NO DOCUMENTS IN QUEUE ONCE THE SPOOLER HAS STARTED TRY PRINTING AGAIN
IF exist C:\Windows\System32\spool\PRINTERS\*.shd del C:\Windows\System32\spool\PRINTERS\*.shd
IF exist C:\Windows\System32\spool\PRINTERS\*.spl del C:\Windows\System32\spool\PRINTERS\*.spl echo PRINTER QUE CLEARED PLEASE TRY PRINTING AGAIN msg * PRINTER QUE CLEARED PLEASE TRY PRINTING AGAIN
net start spooler
pause
任何建议都会感激不尽,因为它在今天早上引起了一个小问题,我需要一个解释。
答案 0 :(得分:4)
问题是您的命令没有按照您的意图进行组合。删除del
之后的所有内容 - 最明显的是net start spooler
之前包含虚假星号的行。所以基本上你是在调用del *
,它会删除当前工作目录中的所有内容(表面上是你的桌面)。
如果您希望在匹配的if
条件下发出多个命令,请使用括号和新行。
@echo off
net stop spooler
IF NOT exist C:\Windows\System32\spool\PRINTERS\*.shd (
echo NO DOCUMENTS IN QUEUE ONCE THE SPOOLER HAS STARTED TRY PRINTING AGAIN
msg * NO DOCUMENTS IN QUEUE ONCE THE SPOOLER HAS STARTED TRY PRINTING AGAIN
) else (
del C:\Windows\System32\spool\PRINTERS\*.shd
)
IF exist C:\Windows\System32\spool\PRINTERS\*.spl (
del C:\Windows\System32\spool\PRINTERS\*.spl
echo PRINTER QUE CLEARED PLEASE TRY PRINTING AGAIN
msg * PRINTER QUE CLEARED PLEASE TRY PRINTING AGAIN
)
net start spooler
echo Press any key to exit.
pause>NUL