Запуск одного пакетного файла без вывода сообщений, а другого - в обычном режиме для автоматического резервного копирования через 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
Другие вопросы по тегам