Windows 7 重新启动后台打印程序的批处理文件删除桌面图标,有人吗?
谁能解释一下这里发生了什么事 如果这是在我们域的计算机上运行的,而没有将其提升到admin,那么它将删除所有桌面图标。我不知道怎么做或者为什么Windows 7 重新启动后台打印程序的批处理文件删除桌面图标,有人吗?,windows-7,printing,batch-file,Windows 7,Printing,Batch File,谁能解释一下这里发生了什么事 如果这是在我们域的计算机上运行的,而没有将其提升到admin,那么它将删除所有桌面图标。我不知道怎么做或者为什么 @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:\Window
@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
如果您有任何建议,我将不胜感激,因为它今天早上造成了一个稍大的问题,我需要一个解释。问题是您的命令没有按照您的意愿进行组合。
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
问题在于,您的命令没有按预期进行组合。
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
@谢谢你,我会把这个传给你的!所以,基本上把它当作一个完整的程序来对待,并对它进行结构化:)@rojo谢谢,我将把这个传递给fortwith!因此,基本上将其视为一个完整的程序,并对其进行结构化:)