Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Не создается файл с о временем в имени (http://forum.oszone.net/showthread.php?t=268517)

Zlunder 21-09-2013 19:43 2221534

Не создается файл с о временем в имени
 
Всем доброго времени суток!
Есть задача при загрузке ПК создавать архивную копию папки (допустим "d:\111\") и хранить недельную историю в архиве (допустим "d:\222\"), в имени файла должно присутствовать время создания архива. Организовано это след способом:

"c:\Program Files (x86)\WinRAR\winrar.exe" A "D:\222\%TIME:~0,-3%.rar" "D:\111"
dir D:\222\*.rar /a:-D/b/o:-D > list_of_files.txt
for /F "skip4" %%i in (list_of_files.txt) do (del /Q "%%i")

Но постоянно вылетает ошибка:

! Невозможно создать D:\222\19:34:46.rar
Синтаксическая ошибка в имени файла, имени папки или метке тома.

При чем ошибка возникает только с переменной %time%, при подстановке %date% все прекрасно отрабатывает, но такое условие не устраивает. Подскажите, с чем это м/б связано или что я не правильно делаю.

gora 21-09-2013 19:59 2221544

Цитата:

Цитата Zlunder
с чем это м/б связано или что я не правильно делаю. »

Двоеточие в имени файла - недопустимый символ, (используется только после буквы диска).

Zlunder 21-09-2013 20:12 2221552

А есть какое-нибудь решение этой проблемы?

Foreigner 21-09-2013 20:14 2221553

Zlunder,
Код:

set "t=%time:~0,-3%"
echo %t::=-%


Zlunder 21-09-2013 20:20 2221558

Так же ругается.

Foreigner 21-09-2013 20:26 2221566

Цитата:

Цитата Zlunder
Так же ругается »

На это ругается?
Код:

set "t=%time:~0,-3%"
"c:\Program Files (x86)\WinRAR\winrar.exe" A "D:\222\%t::=-%.rar" "D:\111"


Zlunder 21-09-2013 20:37 2221577

Все, нашел решение!

set h=%TIME:~0,2%
set m=%TIME:~3,2%
set s=%TIME:~6,2%

set HMS=%h%_%m%_%s%

Всем спасибо!

Iska 21-09-2013 21:05 2221594

Цитата:

Цитата Zlunder
в имени файла должно присутствовать время создания архива. Организовано это след способом:
"c:\Program Files (x86)\WinRAR\winrar.exe" A "D:\222\%TIME:~0,-3%.rar" "D:\111"
»

Код:

"c:\Program Files (x86)\WinRAR\winrar.exe" A -aghhiiss "D:\222\.rar" "D:\111"

Zlunder 21-09-2013 21:27 2221606

Спасибо, но в итоге организовал это так:

chcp 1251
set D=%date:~0,2%
set M=%date:~3,2%
set Y=%date:~8,2%
set YMD=%Y%.%M%.%D%

set h=%TIME:~0,2%
set m=%TIME:~3,2%
set s=%TIME:~6,2%

set HMS=%h%час%m%мин%s%сек

set List=%List.txt%

"c:\Program Files (x86)\WinRAR\winrar.exe" A "D:\222\%YMD%__%HMS%.rar" "D:\111"

dir "D:\222\*.rar" /a:-D/b/o:-D > List

for /F "skip=7" %%i in (LIST) do (del /Q d:\222\"%%i")

Так нет привязки к командам winrar

Iska 22-09-2013 02:11 2221724

Цитата:

Цитата Zlunder
Код:

chcp 1251
»

Сохраняйте пакетный файл в кодировке OEM/866 и искореняйте у себя привычку использовать переключение кодовой страницы на ANSI за исключением особых случаев.


Цитата:

Цитата Zlunder
Код:


set D=%date:~0,2%
set M=%date:~3,2%
set Y=%date:~8,2%
set YMD=%Y%.%M%.%D%

set h=%TIME:~0,2%
set m=%TIME:~3,2%
set s=%TIME:~6,2%

set HMS=%h%час%m%мин%s%сек

set List=%List.txt%

"c:\Program Files (x86)\WinRAR\winrar.exe" A "D:\222\%YMD%__%HMS%.rar" "D:\111"

Так нет привязки к командам winrar »

Подобное имеет смысл при использовании 7-Zip. Для WinRAR же достаточно простого:
Код:

"c:\Program Files (x86)\WinRAR\winrar.exe" A -agyy.mm.dd__hhчасiiминssсек "D:\222\.rar" "D:\111"


Время: 04:25.

Время: 04:25.
© OSzone.net 2001-