|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Запаковать папку с именем дата время |
|
|
CMD/BAT - [решено] Запаковать папку с именем дата время
|
Ветеран Сообщения: 1274 |
Профиль | Отправить PM | Цитировать Добрый день!
Столкнулся с проблемой, если создавать папку с именем дата время @echo off cd /d "%~dp2" set fldr= %date% %time:~0,-3% set fldrPath=%fldr::=. % mkdir "%fldrPath%" exit то не могу запаковать ее в архив батником @echo on cd /d "%~dp2.." set slesh=%~dp2 If "%slesh:~-1%"=="\" set slesh=%slesh:~0,-1% "C:\Program Files\7-Zip\7z.exe" a "%slesh%" "%~dp2" pause папки с любыми именами и пробелами - запаковывает, а вот с точками не хочет, но менять точки на что-то другое - тире или ; не хочу, как выйти из ситуации. %~dp2 - это у меня путь к текущей папке. |
|
Отправлено: 12:06, 22-05-2015 |
Забанен Сообщения: 793
|
|
Отправлено: 12:30, 22-05-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать alpap, научитесь пользоваться тэгом [code].
Приводите полную информацию. Что есть там первый параметр, и почему он нигде не используется в коде? Если второй параметр — это путь к текущей папке, зачем там «cd /d "%~dp2"»?! |
Отправлено: 12:33, 22-05-2015 | #3 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать greg zakharov,
Не понял. Папка ...дата время уже создана (а может быть и с другим именем). Какая разница запихаю ее в переменную или нет, ее имя не может распознать архиватор, пишет не является она архивом. Пишу имя, например "Папка", спокойно делает мне рядом "Папка.7z". Цитата Iska:
@echo on cd /d "%~dp2.." set slesh=%~dp2 If "%slesh:~-1%"=="\" set slesh=%slesh:~0,-1% "C:\Program Files\7-Zip\7z.exe" a "%slesh%" "%~dp2" pause |
|
Последний раз редактировалось alpap, 22-05-2015 в 14:12. Отправлено: 13:33, 22-05-2015 | #4 |
Забанен Сообщения: 793
|
Цитата alpap:
|
||
Отправлено: 14:22, 22-05-2015 | #5 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата alpap:
Цитата alpap:
Рекомендую отказаться от подобной манеры выкладывать проблемные батники. Попробуйте заменить %~dp2 на простую переменную и отлаживайте батник именно в таком виде. В таком же виде выкладывайте Ваш батник на форум, если возникли вопросы. После отладки батника Вы сможете заменить переменную на Вашу %~dp2 и получить рабочую конструкцию. |
||
Отправлено: 14:32, 22-05-2015 | #6 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать gora,
Ну хорошо. Кое что наладил, но не получается переименовать файл
Хочу назад вернуть точки - где ошибка? |
Отправлено: 16:33, 22-05-2015 | #7 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Извиняюсь, нашел, во второй переменной путь указан, а надо просто имя. Получилось так:
@echo off cd /d "C:\Users\Papenko\Desktop" set "slesh=C:\Users\Papenko\Desktop\ 22.05.2015 14. 16. 51" set "slesh=%slesh:~0,-1%" set "slesh=%slesh:.=-%" "C:\Program Files\7-Zip\7z.exe" a "%slesh%" "C:\Users\Papenko\Desktop\ 22.05.2015 14. 16. 51" set "new=%slesh%.7z" for %%i in ("%new%") do set "new1=%%~nxi" set "new1=%new1:-=.%" ren "%new%" "%new1%" exit |
Отправлено: 17:55, 22-05-2015 | #8 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата alpap:
1 Первый символ в имени папки не может быть пробел. Мне не удалось создать такую папку ни в Проводнике, ни в Total Commander. 2 Непонятно зачем отрезать последний символ из имени папки (там не слеш). Это ни чего не дает кроме путаницы. 3 Архиватор не понимает, где здесь имя архива, а где имя упаковываемого объекта. Нужно указать расширение у архива и тогда он все поймет. 4 Вы же, как я понял, хотите переименовать архив, а указываете путь с именем папки (нет расширения и это уже не архив, а папка). Нужно указать расширение переименовываемого файла. В команде ren вторым параметром идет новое имя файла без пути! Ну и в заключении Ваш батник без лишних "выкрутасов" с переименованиями. |
|
Отправлено: 18:00, 22-05-2015 | #9 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать gora,
Цитата gora:
http://forum.oszone.net/attachment.p...1&d=1432312045 А архиватор расширение 7z сам добавляет по-умолчанию, главное чтобы обр слеша не было. |
|
Последний раз редактировалось alpap, 28-07-2016 в 00:25. Отправлено: 19:28, 22-05-2015 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Распаковка ВСЕХ архивов в папку с тем же именем | death7lord | Скриптовые языки администрирования Windows | 9 | 11-01-2020 15:21 | |
CMD/BAT - копирование папки с целевым именем "название+дата создания" | Zlodeyz | Скриптовые языки администрирования Windows | 5 | 08-02-2011 02:52 | |
Дата\время (вопрос) | Sunsei | Непонятные проблемы с Железом | 5 | 03-04-2008 00:52 | |
дата и время в С++ | ptt | Программирование и базы данных | 5 | 02-09-2004 09:45 | |
время и дата | hameg | Программное обеспечение Linux и FreeBSD | 16 | 29-09-2003 21:02 |
|