Запуск одного пакетного файла без вывода сообщений, а другого - в обычном режиме для автоматического резервного копирования через USB
Это мой первый пост здесь, поэтому я сделаю все возможное. По сути, я хочу автоматически создавать резервные копии моего USB, когда он подключен, на данный момент я настроил три файла, backup.bat, тихий 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, включив в него эхо и паузу, но если я сделаю это сейчас, он будет невидим, так как я могу заставить скрипт наблюдения работать без вывода сообщений, но скрипт резервного копирования работает нормально? Спасибо, ребята, я надеюсь, что мой пост достаточно описательный.
1 ответ
Чтобы создать уведомление, создайте новый файл с именем 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
Backup.bat
Скрипт будет скрыт при вызове через файл vbs, но 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