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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Не создается файл с о временем в имени

Ответить
Настройки темы
CMD/BAT - Не создается файл с о временем в имени

Новый участник


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

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


Всем доброго времени суток!
Есть задача при загрузке ПК создавать архивную копию папки (допустим "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% все прекрасно отрабатывает, но такое условие не устраивает. Подскажите, с чем это м/б связано или что я не правильно делаю.

Отправлено: 19:43, 21-09-2013

 

Аватара для gora

Ушёл из жизни


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

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


Цитата Zlunder:
с чем это м/б связано или что я не правильно делаю. »
Двоеточие в имени файла - недопустимый символ, (используется только после буквы диска).
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:59, 21-09-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


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

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


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

Отправлено: 20:12, 21-09-2013 | #3


Ветеран


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

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


Zlunder,
Код: Выделить весь код
set "t=%time:~0,-3%"
echo %t::=-%

Отправлено: 20:14, 21-09-2013 | #4


Новый участник


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

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


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

Отправлено: 20:20, 21-09-2013 | #5


Ветеран


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

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


Цитата Zlunder:
Так же ругается »
На это ругается?
Код: Выделить весь код
set "t=%time:~0,-3%"
"c:\Program Files (x86)\WinRAR\winrar.exe" A "D:\222\%t::=-%.rar" "D:\111"

Отправлено: 20:26, 21-09-2013 | #6


Новый участник


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

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


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

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

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

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

Последний раз редактировалось Zlunder, 21-09-2013 в 20:40. Причина: Добавил


Отправлено: 20:37, 21-09-2013 | #7


Ветеран


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

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


Цитата 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"
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:05, 21-09-2013 | #8


Новый участник


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

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


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

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

Отправлено: 21:27, 21-09-2013 | #9


Ветеран


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

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


Цитата 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"
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:11, 22-09-2013 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Не создается файл с о временем в имени

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Можно ли запустить cmd файл от имени администратора? Grabber2006 Скриптовые языки администрирования Windows 4 10-07-2013 16:48
CMD/BAT - Копирование имени файлов в 1 файл Kalyai Скриптовые языки администрирования Windows 0 25-07-2012 12:44
Установка - Не создается основной диск dzevgen Microsoft Windows 7 2 27-08-2011 22:55
[решено] Не создается файл\папка с опред. именем Classic Art Хочу все знать 1 29-11-2010 23:54
CMD/BAT - [решено] сделать bat файл запускающийся от имени администратора? God-of-Chaos Скриптовые языки администрирования Windows 1 03-11-2009 08:33




 
Переход