Имя пользователя:
Пароль:
 | Правила  

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

Ответить
Настройки темы
CMD/BAT - [решено] Назвать архив названием файла

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


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

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


Добрый день. Батниками пользуюсь не часто по тому буду очень благодарен за всякую предоставленную помощь.
Необходимо создать bat файл который бы архивировал файлы в каталоге а название архива брав из самого файла. Например:

На диске D существует папка 1. В папке лежат 6 файлов: 12.o, 12.r, 12.k, 13.o, 13.r, 13.k
В результате отработки батника необходимо что бы файлы 12.o, 12.r, 12.k были помещены в архив под название 12.arj а файлы 13.o, 13.r, 13.k - 13arj. Заархивированные файлы должны удаляться. Спасибо.

Отправлено: 17:56, 22-09-2011

 

Аватара для ferget

Разный


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

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


какой программой пользуетесь для архивации?

Отправлено: 18:23, 22-09-2011 | #2



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

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


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


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

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


arj32.exe

Отправлено: 19:27, 22-09-2011 | #3


Ветеран


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

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


Примерно так:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sPath=%~1

if defined sPath (
	if exist "%sPath%" (
		for %%i in ("%sPath%\*.*") do "%ProgramFiles%\ARJ32\arj32.exe" a -d -y -e "%%~ni" "%%i"
	) else (
		echo Path [%sPath%] not found
	)
) else (
	echo Usage: %~nx0 ^<Path^>
)

endlocal
exit /b
Вызов пакетного файла наподобие:
Код: Выделить весь код
"E:\Песочница\0079\0001.cmd" "D:\1"
Архивы будут созданы/обновлены в текущем каталоге.

Последний раз редактировалось Iska, 23-09-2011 в 05:27. Причина: Благодаря коллеге ferget'у, исправлена ошибка в коде, приводящая к созданию архивов только из файлов текущего каталога

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:51, 22-09-2011 | #4


Аватара для ferget

Разный


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

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


Цитата Iska:
Вызов пакетного файла »
пакует в папке где находится, как ни вызывай
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:30, 23-09-2011 | #5


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


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

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


Спасибо конечно что не спали и пытались мне помочь. НЕ буду отрицать, я не гуру в этом деле как вы, но для меня не понятно где же тут команда на архивацию? . Но в любом случаи спасибо. Попытаюсь завтра разобраться во всем этом.

Отправлено: 01:15, 23-09-2011 | #6


Аватара для ferget

Разный


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

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


Цитата айкот:
где же тут команда на архивацию? »
вот
Код: Выделить весь код
for %%i in ("%sPath%\*.*") do "%ProgramFiles%\ARJ32\arj32.exe" a -d -y -e "%%~ni" "%%i"

Последний раз редактировалось ferget, 23-09-2011 в 08:36.

Это сообщение посчитали полезным следующие участники:

Отправлено: 02:14, 23-09-2011 | #7


Ветеран


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

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


ferget, моя вина: я сначала сделал вариант с «pushd/popd», затем нашёл параметр «-e/-e1». У себя и на форуме «pushd/popd» я убрал, а вот путь к маске добавить не только у себя, но и на форуме — запамятовал. Спасибо за замечание.

Я поправил код в #4.
Это сообщение посчитали полезным следующие участники:

Отправлено: 05:28, 23-09-2011 | #8


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


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

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


Ой, спасибо Вам ребята. Все работает, во всем вроде как разобрался.

Спасли меня от ручного архивирование тысячи файлов.

Отправлено: 17:23, 23-09-2011 | #9



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как с помощью скрипта создать архив с динамичным названием учитывая нужные критерии yaoleg2 Скриптовые языки администрирования Windows 15 08-11-2013 14:16
Как назвать магазин ? kakawkin Флейм 18 19-08-2011 08:51
[решено] Как назвать папку C:\Windows_SATA? stalingrad432006 Хочу все знать 4 10-05-2008 20:27
[решено] Архивация каждого файла в отдельный архив vadimiron Общий по Linux 10 15-08-2007 14:24
Интернет (не знаю как назвать) Sergey123 Сетевые технологии 3 14-11-2005 11:33




 
Переход