我正在为客户设置一个备份脚本,该脚本将安排每月运行一次,以将他的 200GB iTunes 目录备份到他的 NAS。它是使用一些定义的参数和编译的ROBOCOPY %_source% %_dest% %_what% %_options%
。我如何在该脚本的开头添加一些内容以在 Robocopy 任务之前退出所有打开的应用程序?
我可以使用 taskkill.exe,但我担心如果当时正在运行,可能会损坏一些 iTunes 文件。有没有一种干净的方法可以退出所有内容?
答案1
据我所知,批处理脚本无法实现温和关闭,你最好使用 vbscript 来关闭 iTunes
Set objitunes = CreateObject("Itunes.Application")
objItunes.quit
这应该可以实现你想要的效果。
然后使用
CreateObject("WScript.Shell").Run("""C:\myfile.bat""")
打开您的复制批处理文件或直接从 vbs 文件中使用 robocopy(我知道可以做到但我不知道如何做)
如果你使用批处理文件,你可以使用
tasklist /FI "IMAGENAME eq itunes.exe" 2>NUL | find /I /N "itunes.exe">NUL
if "%ERRORLEVEL%"=="1" robocopy C:\your\folder\ N:\your\other\folder /mir
使其仅在 iTunes 关闭时复制