CMD/BAT - [решено] Запакавка распаковка файлов из дистрибутива

Аватара пользователя
Pozia

CMD/BAT - [решено] Запакавка распаковка файлов из дистрибутива

Сообщение Pozia »

Подскажите какой командой в CMD распаковать файлы вида XPTHT37W.CS_, XPTHT53D.GI_ и запаковать их обратно. Причем таких файлов куча лежит в папке и нужно их распаковать в эту же или другую папку. И как запоковать обратно?
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Запакавка распаковка файлов из дистрибутива

Сообщение Iska »

Pozia, неправильно поняли. В данном случае строится файл «*.ddf», необходимый для работы утилиты «makecab.exe».



Подробное описание и формат файла инструкций Вы можете найти в файле «.\DOCS\makecab.doc» из набора
Microsoft Cabinet Software Development Kit
в разделе 4.
Аватара пользователя
Pozia

Re: CMD/BAT - [решено] Запакавка распаковка файлов из дистрибутива

Сообщение Pozia »

gora, выполняю так:





Код:

Код: Выделить всё

Expand -r "*.*" \ >nul

и ничего. А нужно чтобы все файлы из текущей папки распаковало в эту же папку.
Аватара пользователя
gora

Re: CMD/BAT - [решено] Запакавка распаковка файлов из дистрибутива

Сообщение gora »

Цитата Pozia:



нужно чтобы все файлы из текущей папки распаковало в эту же папку
CMD/BAT - [решено] Запакавка распаковка файлов из дистрибутива




Текущей - значит скрипт находится в той же папке, что и распаковываемые файлы.

Код:

Код: Выделить всё

For %%I In (*.??_) Do Expand -r "%%I" >nul
Аватара пользователя
gora

Re: CMD/BAT - [решено] Запакавка распаковка файлов из дистрибутива

Сообщение gora »

Цитата gora:



Можете подсмотреть в скрипте UpDatePack-a.
CMD/BAT - [решено] Запакавка распаковка файлов из дистрибутива




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

Re: CMD/BAT - [решено] Запакавка распаковка файлов из дистрибутива

Сообщение Pozia »

Цитата Pozia:



скрипт для распаковки кучи файлов в нужную мне папку и упаковку обратно всех файлов из одной папки в другую?
CMD/BAT - [решено] Запакавка распаковка файлов из дистрибутива






Код:

Код: Выделить всё

@Echo Off
setlocal enabledelayedexpansion
rem Путь и имя папки со сжатыми файлами
Set "Source=c:\musor\temp"
rem Путь и имя папки для распакованных файлов
Set "Out_1=c:\musor\temp1"
rem Путь и имя папки для повторно сжатых файлов
Set "Out_2=c:\musor\temp2"
rem Распаковка файлов из папки Source в папку Out_1
For /F "UseBackQ Delims=" %%I In (`Dir "%Source%\*.??_" /B /ON 2^>nul`) Do Expand -r "%Source%\%%~I" "%Out_1%" >nul
Pause
rem Упаковка файлов из папки Out_1 в папку Out_2
For /F "UseBackQ Delims=" %%I In (`Dir "%Out_1%\*" /B /ON 2^>nul`) Do (
	Set ext=%%~xI
	MakeCab /D CompressionMemory=21 /D CompressionType=LZX /L "%Out_2%" "%Out_1%\%%~I" "%%~nI!ext:~0,-1!_" >nul
)
Pause
Exit
Аватара пользователя
gora

Re: CMD/BAT - [решено] Запакавка распаковка файлов из дистрибутива

Сообщение gora »

gora, подскажите еще команду пожалуйста. Мне нужно кучу файлов из одной папки упаковать в CAB архив в другую папку. Как это записать?
Аватара пользователя
Pozia

Re: CMD/BAT - [решено] Запакавка распаковка файлов из дистрибутива

Сообщение Pozia »

gora, подскажите еще команду пожалуйста. Мне нужно кучу файлов из одной папки упаковать в CAB архив в другую папку. Как это записать?
Аватара пользователя
E-mpty

Re: CMD/BAT - [решено] Запакавка распаковка файлов из дистрибутива

Сообщение E-mpty »

Pozia, я делал так:

Код:

Код: Выделить всё

For %%I In (Диск:\папка с файлами,которые нужно уапаковать\*.*) Do START /WAIT MAKECAB.exe "%%~I"

Запакованные файлы появится там от куда был запущен батник.
Аватара пользователя
Petya V4sechkin

Re: CMD/BAT - [решено] Запакавка распаковка файлов из дистрибутива

Сообщение Petya V4sechkin »

Цитата Pozia:



нужно кучу файлов из одной папки упаковать в CAB архив в другую папку.



Можно с помощью Makecab:



Код:

Код: Выделить всё

@Echo Off
SetLocal EnableExtensions
Set SrcDir=Папка_с_файлами
Set DestCAB=Полное_имя_CAB-файла
Echo .OPTION EXPLICIT > "%Temp%\x1.DDF"
Echo .Set RptFileName="%Temp%\x1.RPT" >> "%Temp%\x1.DDF"
Echo .Set InfFileName=NUL >> "%Temp%\x1.DDF"
Echo .Set DestinationDir= >> "%Temp%\x1.DDF"
Echo .Set CabinetName1="%DestCAB%" >> "%Temp%\x1.DDF"
Echo .Set DiskDirectoryTemplate= >> "%Temp%\x1.DDF"
Echo .Set UniqueFiles=Off >> "%Temp%\x1.DDF"
Echo .Set FolderSizeThreshold=5000000 >> "%Temp%\x1.DDF"
Echo .Set MaxDiskSize=0 >> "%Temp%\x1.DDF"
Echo .Set Cabinet=On >> "%Temp%\x1.DDF"
Echo .Set Compress=On >> "%Temp%\x1.DDF"
Echo .Set CompressionType=LZX >> "%Temp%\x1.DDF"
Echo .Set CompressionMemory=21 >> "%Temp%\x1.DDF"
For /F "Delims=" %%K In ('Dir /A-D /B "%SrcDir%"') Do Echo "%SrcDir%\%%~K" >> "%Temp%\x1.DDF"
MAKECAB.EXE /F "%Temp%\x1.DDF"

или воспользоваться
Cabarc.exe
Ответить

Вернуться в «Скриптовые языки администрирования Windows»