Имя: Пароль:
1C
1С v8
v8: Неправильно отрабатывает bat
0 fatal_error
 
06.08.13
07:34
Всем добрый день. Есть батник на резервное копирование.

rem echo off

set mytime=%time%
set mytime=%mytime:~0,2%.%mytime:~3,2%.%mytime:~6,2%

set mydate=%date%
set mydate=%date:~6,4%.%date:~3,2%.%date:~0,2%

set backup_path=d:\backup\backup_%mydate%_%mytime%
set backup_temp=d:\backup\temp

md %backup_path%
md %backup_temp%

xcopy "C:\Program Files\1cv82\srvinfo\reg_1541\995915d4-3744-4163-a499-05d88bb8b0d3" "%backup_temp%" /y /e /i
"C:\Program Files\PostgreSQL\9.1.2-1.1C\bin\pg_dump.exe" -h 10.0.0.100 -U postgres -c -f %backup_temp%\base.dump base
"C:\Program Files\7-Zip\7z.exe" a -r -mx7 -y "%backup_path%\base" "%backup_temp%\*.*"
rd /s /q "%backup_temp%"


По идеи должен создавать папку вида "d:\backup\backup_2013.08.06_01.00.00". Но иногда делает папки "d:\backup\backup_2013.08.06_", а при архивировании 7z выдает ошибку не найден путь "d:\backup\backup_2013.08.06_01.00.00".
1 Cube
 
06.08.13
07:38
Короче, там вся проблема в том, что часы до 10 идут с пробелом, т.е. " 1", " 2" и т.д.
2 Cube
 
06.08.13
07:44
У меня подобный батник начинается так (вроде работает):

rem Получим новое имя файла в формате ГГГГ-ММММ-ДД_ЧЧ-ММ-СС и запишем его в переменную NewFileName
set NewFileName=%TIME:~0,-3%
set NewFileName=%NewFileName::=-%
set NewFileName=%NewFileName: =0%
set NewFileName=%DATE:~-4%-%DATE:~3,2%-%DATE:~0,2%_%NewFileName%
3 fatal_error
 
06.08.13
07:59
(2) Спасибо.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший