PDA

Показать полную графическую версию : [решено] Архивирование файлов в каталоге


Страниц : 1 2 [3]

megaloman
20-05-2011, 15:57
Echo off
Set Name=%~n0
Set Dir=%~dp0

rem Set DirR=%Dir%
Set DirR=C:\

echo echo off >"%Tmp%\~%Name%.bat"
echo "C:\Program Files\Winrar\Winrar.exe" M -r -ep1 -sfx "%DirR%%Name%.exe" "%Dir%" >>"%Tmp%\~%Name%.bat"
Echo Echo ---------------------------------------------------------- >>"%Tmp%\~%Name%.bat"
echo if exist "%DirR%%Name%.exe" ( >>"%Tmp%\~%Name%.bat"
echo Echo Создан архив "%DirR%%Name%.exe" >>"%Tmp%\~%Name%.bat"
echo ) Else ( >>"%Tmp%\~%Name%.bat"
echo Echo !!!! Архив создать не удалось "%DirR%%Name%.exe" >>"%Tmp%\~%Name%.bat"
echo ) >>"%Tmp%\~%Name%.bat"
Echo Echo ---------------------------------------------------------- >>"%Tmp%\~%Name%.bat"
echo Pause >>"%Tmp%\~%Name%.bat"
Start "CMD" CMD /c "%Tmp%\~%Name%.bat"
Смысл всей возни - батник генерирует новый батник в папке для врменных файлов, оттуда его затем запускает. При этом Start упаковщику не нужен вовсе, пока упаковщик не отработает, батник далее исполняться не будет. Недостающие на ваш взгляд ключи для упаковщика припишите самии (коментарии-иконки). Мелкая неприятность - в папке %Tmp% остаётся батник. Но я, например, перед завершением работы эту папку чищу, а, во вторых, несколько байт погоды не делают.
Если батник запускается из разных папок, чтобы эти служебные батники не размножались, вместо имени "%Tmp%\~%Name%.bat" придумать какое-то постоянное, например,
"%Tmp%\~kuku.bat"

amel27
20-05-2011, 16:03
после архивирования, командная строка сразу закрывается »можно взять всё это в скобки:
(
start "Rar" /wait "C:\Program Files\Winrar\Winrar.exe" M -r -ep1 -sfx -iicon"1.ico" -z"komm.txt" "C:\%Arhiv%" "%~dp0"
Echo.
Echo.
Echo Самоустанавливающийся архив %Arhiv%
Echo создан в корне диска С
ping 127.0.0.1 -n 35 > nul
)

sov44
20-05-2011, 16:34
megaloman, спасибо, принцип понятен, но пока сложен для понимания.
amel27, респект! Всё работает, как надо!

sov44
15-06-2011, 21:30
Подскажите, как отредактировать скрипт
start "Rar" /wait "C:\Program Files\Winrar\Winrar.exe" M -r -ep1 -sfx -iicon"1.ico" -z"komm.txt" "C:\%Arhiv%" "%~dp0"

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

megaloman
16-06-2011, 09:47
Заменить "%~dp0", которое указывает на путь к батнику, на конкретное полное имя папки, которую архивируем, например, "E:\My backup\"

sov44
18-08-2011, 19:48
Уважаемые знатоки! Нужна помощь по упаковке в 7z sfx архив папки с подпапками и файлами. Есть замечательный скрипт gora http://forum.oszone.net/post-1436397-46.html ,однако он "заточен" под конкретную программу, а не под набор папок и файлов. Самостоятельно подправить его под свои нужды не получается.

gora
18-08-2011, 20:04
набор папок и файлов »
Приведите свой список файлов и папок, которые нужно упаковать. Папки нужно упаковывать со всем содержимым? Расположение папок и файлов относительно скрипта (желателен один уровень) ?

sov44
18-08-2011, 20:54
Приведите свой список файлов и папок, которые нужно упаковать. »
Office 2010 SP1
Access.ru-ru
AddSettings
Admin
Catalog
Excel.ru-ru
......
Proofing.ru-ru
ProPlus.WW
Publisher.ru-ru
Rosebud.ru-ru
Updates
Word.ru-ru
autorun.inf
msksm.cmd
README.HTM
setup.exe
Папки нужно упаковывать со всем содержимым? »
да
Расположение папок и файлов относительно скрипта (желателен один уровень)? »
да, скрипт должен находится в одном уровне с папками и файлами.

п.с. Если ещё и удастся заменить заменить иконку sfx на свою ( "Updates\1.ico" - reshacker присутствует в системе ), установить вручную дату сборки, добавить описания для понятия принципа работы скрипта, было бы вообще супер. :blush2:

sov44
19-08-2011, 19:00
Вопрос создания архива решен. Спасибо gora!

Ruslan-kam
13-10-2011, 22:10
Здравствуйте, ребята. Помогите решить такую задачу. Имеется папка, в ней *.exe файлы и *.txt файлы с описанием. Структура такова
\explorer.exe
\explorer.exe.txt

\NOTEPAD.EXE
\NOTEPAD.EXE.txt

\regedit.exe
\regedit.exe.txt
Прошу помощи в насании скрипта или батника который упаковал бы файлы с похожими имена в отдельный архив. То есть чтобы
\explorer.exe
\explorer.exe.txt
заархивировался в explorer.exe.zip
\NOTEPAD.EXE \NOTEPAD.EXE.txt в notepad.exe.zip и так далее.

Iska
14-10-2011, 07:01
Ruslan-kam, примерно так:
@echo off
setlocal enableextensions enabledelayedexpansion

set sPath=%~1

if not defined sPath (
call :Usage
exit /b 1
)

if not exist "%sPath%\" (
echo Can't find folder [%sPath%]
exit /b 2
) else echo 3


for %%i in ("%sPath%\*.*") do (
for %%j in ("%%~dpni") do (
echo Add [%%i] into [%%~nj.7z]
"%ProgramFiles%\7-Zip\7z.exe" a "%%~nj.7z" "%%i" 1>nul
)
)

endlocal
exit /b 0
rem ==========================================================================

rem ==========================================================================
:Usage
echo Usage: %~nx0 ^<folder^>
exit /b 0
rem ==========================================================================

Вызываете, указав в качестве параметра путь к папке: «Имеется папка, в ней *.exe файлы и *.txt файлы с описанием». Дабы сам пакетный файл не попал в архивы — не кладите его в эту папку, а вызывайте из любого другого места указанием пути к нему. Архивы будут созданы в текущей папке.

Ruslan-kam
14-10-2011, 17:29
Iska, ура! Сработало!
Спасибо, добрый человек.

Noob_Noob
09-01-2015, 15:15
Помогите нубу справится.
Архивирую фалы в каталоге найденным здесь же скриптом.
@Echo Off
ChCp 1251>Nul

Set src=D:\Source
Set arch=D:\Arch
Set ar7z=C:\Program Files\7-Zip\7z.exe

(for /r "%src%" %%a in (*) do (set "$pna=%%~pna"& set "$a=%%a"
SETLOCAL EnableDelayedExpansion
"%ar7z%" a "%arch%!$pna!.7z" -psecret -mhe "!$a!">nul
ENDLOCAL
))

Теперь нужно выполнить обратную задачу:


@Echo Off
ChCp 1251>Nul

Set src=D:\Arch
Set arch=D:\Source1
Set ar7z=C:\Program Files\7-Zip\7z.exe

(for /r "%src%" %%a in (*) do (set "$pna=%%~pna"& set "$a=%%a"
SETLOCAL EnableDelayedExpansion
"%ar7z%" x -psecret -o"%arch%!$pna!" "!$a!">nul
ENDLOCAL
))

В результате каждый архив распаковывается в свою папку, хотя структура каталогов сохраняется. Как сделать, чтобы каждый архив распаковывался как файл, сохранив при этом структуру каталогов?

Iska
11-01-2015, 13:11
Помогите, пжлст, с моим вопросом. Уверен, это не займет у Вас много времени )))

http://forum.oszone.net/thread-185028-6.html
Ваш вопрос непонятен.

найденным здесь же скриптом. »
Где именно? Приведите ссылку на пост, если уж не пишете, что он должен делать.

обратную задачу »
Что есть «обратная задача» неясно, поскольку не описана «прямая». Словами, разумеется, тоже не описано.

чтобы каждый архив распаковывался как файл, сохранив при этом структуру каталогов? »
«архив распаковывался как файл» не смог осилить.




© OSzone.net 2001-2012