这是我第一次在这里发帖,所以我会尽我所能。 基本上我想在插入USB时自动备份USB,我现在设置的是三个文件,backup.bat,silent backup.vbs和backup watch.bat
BACKUP.BAT
@echo off
Set _TS=
Set _Source=C:\NMIT
Set _Dest=I:\Users\The Beast\SkyDrive\School\NMIT
Set _Log=I:\Users\The Beast\Documents\NMIT USB Backup Log.txt
robocopy "%_Source%" "%_Dest%" /E /ZB /B /V /PURGE /LOG:"I:\Users\The Beast\Documents\NMIT USB Backup Log.txt"
echo Backup complete, please remove USB
pause
Silent backup.vbs
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "I:\Users\The Beast\Desktop\testing bat\backup watch.bat" & Chr(34), 0
Set WshShell = Nothing
备份watch.bat
@echo off
IF EXIST "C:/NMIT" call "I:\Users\The Beast\Desktop\testing bat\backup.bat"
一切正常,运行,复制新文件,写入日志文件,由于我在网上找到的vbs scipt,它也默默运行,唯一的问题是我不知道它是否已经完成备份,任务调度程序每5分钟运行一次脚本。我想要做的是让监视脚本以静默方式运行,但在备份完成时显示通知。我想最简单的方法是编辑backup.bat以包含回显和暂停,但如果我现在这样做它是不可见的,那么如何让监视脚本运行无声,但备份脚本运行正常?谢谢大家,我希望我的帖子足够描述。
答案 0 :(得分:0)
要创建通知,请在同一目录中创建名为notify.bat
的新文件:
@echo off
cls
set seconds=5
echo Backup complete, please remove USB
ping -n %seconds% 127.0.0.1 > NUL 2>&1
exit 0
现在将您的Backup.bat
脚本更改为:
@echo off
Set "_TS="
Set _Source=C:\NMIT
Set _Dest=I:\Users\The Beast\SkyDrive\School\NMIT
Set _Log=I:\Users\The Beast\Documents\NMIT USB Backup Log.txt
robocopy "%_Source%" "%_Dest%" /E /ZB /B /V /PURGE /LOG:"I:\Users\The Beast\Documents\NMIT USB Backup Log.txt"
start notify.bat
通过vbs文件调用时,Backup.bat
脚本将被隐藏,但notify.bat将被显示,因为它是从bat文件中调用的。
另外,一个小小的提示,为了逃避引号内的引用,使用双引号。在Silent backup.vbs
看起来像:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run """I:\Users\The Beast\Desktop\testing bat\backup watch.bat""", 0
Set WshShell = Nothing