新问题,应该还是转义问题吧,没搞懂
原:
:Shutdown
@Copy Nul %windir%\Shutdown.vbs
@Echo strComputer = "." >> %windir%\Shutdown.vbs
@Echo Set objWMIService = GetObject("winmgmts:\\" ^& strComputer ^& "\root\cimv2") >> %windir%\Shutdown.vbs
@Echo Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process") >> %windir%\Shutdown.vbs
@Echo For Each objProcess in colProcesses >> %windir%\Shutdown.vbs
@Echo If Right(objProcess.Name, 12) = "ntbackup.exe" Then >> %windir%\Shutdown.vbs
@Echo Set objShell = CreateObject("WScript.Shell") >> %windir%\Shutdown.vbs
@Echo objShell.Run "%windir%\Rtime.bat" >> %windir%\Shutdown.vbs
@Echo Wscript.Quit >> %windir%\Shutdown.vbs
@Echo End If >> %windir%\Shutdown.vbs
@Echo Next >> %windir%\Shutdown.vbs
@Echo Set objShell = CreateObject("WScript.Shell") >> %windir%\Shutdown.vbs
@Echo objShell.Run "shutdown.exe -f -s -t 600" >> %windir%\Shutdown.vbs
@Echo Wscript.Quit >> %windir%\Shutdown.vbs
@Call %windir%\Shutdown.vbs
@Goto End
输出修改源:
@Echo :Shutdown >> %windir%\One-Week.bat
@Echo @Copy Nul %%windir%%\Shutdown.vbs >> %windir%\One-Week.bat
@Echo @Echo strComputer = "." ^>^> %%windir%%\Shutdown.vbs >> %windir%\One-Week.bat
@Echo @Echo Set objWMIService = GetObject("winmgmts:\\" ^& strComputer ^& "\root\cimv2") ^>^> %%windir%%\Shutdown.vbs >> %windir%\One-Week.bat
@Echo @Echo Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process") ^>^> %%windir%%\Shutdown.vbs >> %windir%\One-Week.bat
@Echo @Echo For Each objProcess in colProcesses ^>^> %%windir%%\Shutdown.vbs >> %windir%\One-Week.bat
@Echo @Echo If Right(objProcess.Name, 12) = "ntbackup.exe" Then ^>^> %%windir%%\Shutdown.vbs >> %windir%\One-Week.bat
@Echo @Echo Set objShell = CreateObject("WScript.Shell") ^>^> %%windir%%\Shutdown.vbs >> %windir%\One-Week.bat
@Echo @Echo objShell.Run "^%^%windir%%\Rtime.bat" ^>^> %%windir%%\Shutdown.vbs >> %windir%\One-Week.bat
@Echo @Echo Wscript.Quit ^>^> %%windir%%\Shutdown.vbs >> %windir%\One-Week.bat
@Echo @Echo End If ^>^> %%windir%%\Shutdown.vbs >> %windir%\One-Week.bat
@Echo @Echo Next ^>^> %%windir%%\Shutdown.vbs >> %windir%\One-Week.bat
@Echo @Echo Set objShell = CreateObject("WScript.Shell") ^>^> %%windir%%\Shutdown.vbs >> %windir%\One-Week.bat
@Echo @Echo objShell.Run "shutdown.exe -f -s -t 600" ^>^> %%windir%%\Shutdown.vbs >> %windir%\One-Week.bat
@Echo @Echo Wscript.Quit ^>^> %%windir%%\Shutdown.vbs >> %windir%\One-Week.bat
@Echo @Call %%windir%%\Shutdown.vbs >> %windir%\One-Week.bat
@Echo @Goto End >> %windir%\One-Week.bat
@Echo.>> %windir%\One-Week.bat
@Echo :END >> %windir%\One-Week.bat
@Echo @Goto Exit >> %windir%\One-Week.bat
结果:
strComputer = "."
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process")
For Each objProcess in colProcesses
If Right(objProcess.Name, 12) = "ntbackup.exe" Then
Set objShell = CreateObject("WScript.Shell")
Wscript.Quit
End If
Next
Set objShell = CreateObject("WScript.Shell")
objShell.Run "shutdown.exe -f -s -t 600"
Wscript.Quit
运行错误,对比发现有一句没输出成功:
@Echo Set objWMIService = GetObject("winmgmts:\\" ^& strComputer ^& "\root\cimv2") >> %windir%\Shutdown.vbs