Назвать архив названием файла
Добрый день. Батниками пользуюсь не часто по тому буду очень благодарен за всякую предоставленную помощь.
Необходимо создать 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. Заархивированные файлы должны удаляться. Спасибо.
|
какой программой пользуетесь для архивации?
|
Примерно так:
Код:
@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"
Архивы будут созданы/обновлены в текущем каталоге.
|
пакует в папке где находится, как ни вызывай
|
Спасибо конечно что не спали и пытались мне помочь. НЕ буду отрицать, я не гуру в этом деле как вы, но для меня не понятно где же тут команда на архивацию? :). Но в любом случаи спасибо. Попытаюсь завтра разобраться во всем этом.
|
Цитата:
Цитата айкот
где же тут команда на архивацию? »
|
вот
Код:
for %%i in ("%sPath%\*.*") do "%ProgramFiles%\ARJ32\arj32.exe" a -d -y -e "%%~ni" "%%i"
|
ferget, моя вина: я сначала сделал вариант с «pushd/popd», затем нашёл параметр «-e/-e1». У себя и на форуме «pushd/popd» я убрал, а вот путь к маске добавить не только у себя, но и на форуме — запамятовал. Спасибо за замечание.
Я поправил код в #4.
|
Ой, спасибо Вам ребята. Все работает, во всем вроде как разобрался.
Спасли меня от ручного архивирование тысячи файлов.
|
Время: 22:33.
© OSzone.net 2001-