Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
...
>"log.txt" (
 @>nul "%VB%" controlvm "%d_GL%" savestate
 ...
 @echo Удалены с содержимым:
 for /f "skip=7 delims=" %%a in ('dir /ad/b/o-d/tc "%d_del%"') do @echo %d_del%\%%a& rd /s /q "%d_del%\%%a"
)
pause
проверьте строку [@>nul "%VB%" controlvm "%d_GL%" savestate], не убьет ли случайно это не только вывод но и операцию

Вообще с учетом что вы заходите в папку код можно так переписать:
Код: Выделить весь код
@echo off
cd /d "C:\vmbackup"
if not exist "%date%" md "%date%"
set "VB=C:\Program Files\Oracle VirtualBox\vboxmanage.exe"
set "f_GL1=GLPI рабочая-disk1.vdi"
set "f_GL2=GLPI рабочая-disk2.vdi"
set "d_GL=GLPI рабочая"
set "f_log=%date%\log.txt"
>"%f_log%" (
 @>nul "%VB%" controlvm "%d_GL%" savestate
 "%VB%" clonemedium "C:\Users\admin\Documents\Virtualbox VMs\%d_GL%\%f_GL1%" "%date%\%f_GL2%"
 "%VB%" startvm "%d_GL%" --type headless
 "%VB%" closemedium disk "%date%\%f_GL2%"
 @echo Удалены с содержимым:
 for /f "skip=7 delims=" %%a in ('dir /ad/b/o-d/tc') do @echo %%a& rd /s /q "%%a"
)
pause
но есть одно но, я его не знал. Удаление папок происходит в этой же папке, а вы создаете папку (опять же здесь) с именем "%date%", она естественно будет свежей и войдет в число (7) удаляемых, поэтому, наверное, есть смысл записать for /f "skip=8 ..., ну это на ваше усмотрение, а предупредить надо.
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:52, 18-02-2017 | #16