CMD/BAT - [решено] упаковка содержимого файлов в cab архив

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

CMD/BAT - [решено] упаковка содержимого файлов в cab архив

Сообщение tr011_tmn »

столкнулся с задачей: мне необходимо запаковать файлы находящиеся в папке, в Cab (грубо говоря win32k.sys запаковать в win32k.sy_). Возможно ли это реализовать средствами CMD?
Аватара пользователя
tr011_tmn

Re: CMD/BAT - [решено] упаковка содержимого файлов в cab архив

Сообщение tr011_tmn »

tr011_tmn, наберите в ком. строке makecab.exe /? получите это:
Цитата:



Microsoft (R) Cabinet Maker - Version 5.1.2600.5512

Copyright (c) Microsoft Corporation. All rights reserved..



MAKECAB [/V[n]] [/D var=value ...] [/L dir] source [destination]

MAKECAB [/V[n]] [/D var=value ...] /F directive_file [...]



source File to compress.

destination File name to give compressed file. If omitted, the

last character of the source file name is replaced

with an underscore (_) and used as the destination.

/F directives A file with MakeCAB directives (may be repeated).

/D var=value Defines variable with specified value.

/L dir Location to place destination (default is current directory).

/V[n] Verbosity level (1..3).



Перевод думаю осилите... Изображение
Аватара пользователя
tr011_tmn

Re: CMD/BAT - [решено] упаковка содержимого файлов в cab архив

Сообщение tr011_tmn »

Цитата gora:



tr011_tmn, наберите в ком. строке makecab.exe /? получите это:
CMD/BAT - [решено] упаковка содержимого файлов в cab архив




огромное спасибо, обратный процесс я нашел как выполнить, а вот с этим все никак не мог разобраться
Аватара пользователя
gora

Re: CMD/BAT - [решено] упаковка содержимого файлов в cab архив

Сообщение gora »

tr011_tmn, наберите в ком. строке makecab.exe /? получите это:
Цитата:



Microsoft (R) Cabinet Maker - Version 5.1.2600.5512

Copyright (c) Microsoft Corporation. All rights reserved..



MAKECAB [/V[n]] [/D var=value ...] [/L dir] source [destination]

MAKECAB [/V[n]] [/D var=value ...] /F directive_file [...]



source File to compress.

destination File name to give compressed file. If omitted, the

last character of the source file name is replaced

with an underscore (_) and used as the destination.

/F directives A file with MakeCAB directives (may be repeated).

/D var=value Defines variable with specified value.

/L dir Location to place destination (default is current directory).

/V[n] Verbosity level (1..3).



Перевод думаю осилите... Изображение
Аватара пользователя
E-mpty

Re: CMD/BAT - [решено] упаковка содержимого файлов в cab архив

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

Цитата E-mpty:



tr011_tmn, может пригодится: упакует все файлы в папке в CAB (путь заменить на свой С: -диск ,33 -название папки). Код: For %%I In (С:\33\*.*) Do START /WAIT MAKECAB.exe "%%~I" (запакованные файлы появится там от куда был запущен пакетный файл....)
CMD/BAT - [решено] упаковка содержимого файлов в cab архив




вопрос заключается в том каким образом он их упакует, если в один архив то мне это не подходит.

На данный момент реализовал что бу упаковка проходила через относительные пути, грубо говоря что бы туда же и положел. но выглядит это конечно ужасно. Т.к. для каждого из файлов приходится использовать makecab а после вуд Del /F /Q что бы удалить оригинал из папки.Страшно подумать что будет когда я буду упаковывать более 200 файлов Изображение (сейчас около ста)
Аватара пользователя
tr011_tmn

Re: CMD/BAT - [решено] упаковка содержимого файлов в cab архив

Сообщение tr011_tmn »

tr011_tmn, нет каждый файл в отдельный архив....Если надо все упаковать в текущей папке а потом удалить не упакованные,то можно поступить таким образом:создать заранее список неупакованных файлов(такая функция есть в file menu tools например или средствами ком.строки code: dir С:\33 /B /O > С:\MC.txt )пусть он называется MC.txt, применить упаковку файлов,а потом удалить не упакованные файлы по списку code: For /F "Delims=" %%i In (C:\33\MC.txt) Do Del %%i (MC.txt должен лежать рядом с пакетным файлом....)
Аватара пользователя
E-mpty

Re: CMD/BAT - [решено] упаковка содержимого файлов в cab архив

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

tr011_tmn, нет каждый файл в отдельный архив....Если надо все упаковать в текущей папке а потом удалить не упакованные,то можно поступить таким образом:создать заранее список неупакованных файлов(такая функция есть в file menu tools например или средствами ком.строки code: dir С:\33 /B /O > С:\MC.txt )пусть он называется MC.txt, применить упаковку файлов,а потом удалить не упакованные файлы по списку code: For /F "Delims=" %%i In (C:\33\MC.txt) Do Del %%i (MC.txt должен лежать рядом с пакетным файлом....)
Аватара пользователя
tr011_tmn

Re: CMD/BAT - [решено] упаковка содержимого файлов в cab архив

Сообщение tr011_tmn »

E-mpty, попробую ваш совет, но это уже будет после завтра на работе, а как быть с относительными путями?

если использовать подобную связку:



Код:

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

SET Dir=Folder1
SET TMP=C:\temp
echo основное тело программы
DIR %DIR% /B /O > %TMP%\DIR.TXT
FOR %%I in (%DIR%\*.*) do START /WAIT makecab.exe "%%~I" /F %tmp%\DIR.TXT /L %DIR%
FOR /F "Delims=" %%i In (%tmp%\DIR.TXT ) Do Del %%i

Как вы думаете удасться ли добится требуемого результата?

P.S.



Код:

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

SET Dir=C:\1
SET TMP=C:\temp
md %TMP%
pause
echo основное тело программы
DIR %DIR% /B /O > %TMP%\DIR.TXT
FOR %%I in (%DIR%\*.*) do START /WAIT makecab.exe "%%~I" /F %tmp%\DIR.TXT /L %DIR%
FOR /F "Delims=" %%i In (%tmp%\DIR.TXT ) Do Del %%i
pause
Del /F /Q %TMP%
pause

Не дало результата. Не найден путь пишет (((
Аватара пользователя
gora

Re: CMD/BAT - [решено] упаковка содержимого файлов в cab архив

Сообщение gora »

Цитата gora:



tr011_tmn, избегайте использования в качестве имен переменных ключевых слов cmd интерпретатора (SET Dir=C:\1) Так же лучше не использовать в качестве имен переменных - имена системных переменных, если Вы не меняете именно системную переменную (SET TMP=C:\temp), лучше не искушать судьбу.
CMD/BAT - [решено] упаковка содержимого файлов в cab архив




тут приведено конечно в виде примера, на практике использую имена не связанные с переменными операционной системы.
Аватара пользователя
tr011_tmn

Re: CMD/BAT - [решено] упаковка содержимого файлов в cab архив

Сообщение tr011_tmn »

tr011_tmn, попробуйте так:

Код:

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

@Echo off
SET Folder=C:\1
echo Compress and delete all files on folder: %Folder%
DIR %Folder% /B /O > %TMP%\FileList.TXT
FOR  /F "Delims=" %%I in (%TMP%\FileList.TXT) do (
echo Compress file: %Folder%\%%I
makecab.exe "%Folder%\%%I" /L %Folder%>nul
Del /F /Q "%Folder%\%%I"
)
Del /F /Q %TMP%\FileList.TXT
pause>nul

Скрипт упакует все файлы в папке C:\1 по отдельности в эту же папку и удалит из нее оригиналы. Временный файл список тоже удаляется.
Ответить

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