упаковка содержимого файлов в cab архив
столкнулся с задачей: мне необходимо запаковать файлы находящиеся в папке, в Cab (грубо говоря win32k.sys запаковать в win32k.sy_). Возможно ли это реализовать средствами CMD?
|
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).
|
Перевод думаю осилите... :)
|
Цитата:
Цитата gora
tr011_tmn, наберите в ком. строке makecab.exe /? получите это: »
|
огромное спасибо, обратный процесс я нашел как выполнить, а вот с этим все никак не мог разобраться
|
tr011_tmn, может пригодится: упакует все файлы в папке в CAB (путь заменить на свой С: -диск ,33 -название папки).
Код:
For %%I In (С:\33\*.*) Do START /WAIT MAKECAB.exe "%%~I"
(запакованные файлы появится там от куда был запущен пакетный файл....)
|
Цитата:
Цитата E-mpty
tr011_tmn, может пригодится: упакует все файлы в папке в CAB (путь заменить на свой С: -диск ,33 -название папки). Код: For %%I In (С:\33\*.*) Do START /WAIT MAKECAB.exe "%%~I" (запакованные файлы появится там от куда был запущен пакетный файл....) »
|
вопрос заключается в том каким образом он их упакует, если в один архив то мне это не подходит.
На данный момент реализовал что бу упаковка проходила через относительные пути, грубо говоря что бы туда же и положел. но выглядит это конечно ужасно. Т.к. для каждого из файлов приходится использовать makecab а после вуд Del /F /Q что бы удалить оригинал из папки.Страшно подумать что будет когда я буду упаковывать более 200 файлов :cool: (сейчас около ста)
|
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, попробую ваш совет, но это уже будет после завтра на работе, а как быть с относительными путями?
если использовать подобную связку:
Код:
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
Не дало результата. Не найден путь пишет (((
|
tr011_tmn, избегайте использования в качестве имен переменных ключевых слов cmd интерпретатора (SET Dir=C:\1) Так же лучше не использовать в качестве имен переменных - имена системных переменных, если Вы не меняете именно системную переменную (SET TMP=C:\temp), лучше не искушать судьбу.
|
Цитата:
Цитата gora
tr011_tmn, избегайте использования в качестве имен переменных ключевых слов cmd интерпретатора (SET Dir=C:\1) Так же лучше не использовать в качестве имен переменных - имена системных переменных, если Вы не меняете именно системную переменную (SET TMP=C:\temp), лучше не искушать судьбу. »
|
тут приведено конечно в виде примера, на практике использую имена не связанные с переменными операционной системы.
|
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 по отдельности в эту же папку и удалит из нее оригиналы. Временный файл список тоже удаляется.
|
Цитата:
Цитата gora
Скрипт упакует все файлы в папке C:\1 по отдельности в эту же папку и удалит из нее оригиналы. Временный файл список тоже удаляется. »
|
по теории вероятности данный скрипт обрабатывает успешно указанные ему папки, и все идеально ))) но вот в моем частном случае он мне не подошел ))) т.к. в папке C:\1 находились еще 4 папки )))) которые он успешно и очистил )))) сразу и не понял в чем дело, потом только дошло ))) куда у мен деваеться их содержимое.
P.S. значитца бум искать такой же только с перламутровыми пуговицами ))
|
Petya V4sechkin |
10-03-2009 10:49 1059493 |
Цитата:
Цитата tr011_tmn
т.к. в папке C:\1 находились еще 4 папки )))) которые он успешно и очистил ))))
|
Исправьте строку:
Код:
DIR %Folder% /B /O > %TMP%\FileList.TXT
на:
Код:
DIR %Folder% /B /A-D > %TMP%\FileList.TXT
(чтобы исключить папки из обработки).
|
Ребята подскажите пожалуйста как с помощью этого же скрипта организовать пакетное конвертирование файлов с помощью утилитки convert
вот скрипт
@Echo off
SET Folder=C:\1
DIR %Folder% /B /O > %TMP%\FileList.TXT
FOR /F "Delims=" %%I in (%TMP%\FileList.TXT) do (
set /a id=+1
convert.exe "%Folder%\%%I" "%Folder%\image_%id%.jpg"
Del /F /Q "%Folder%\%%I"
)
Del /F /Q %TMP%\FileList.TXT
где может быть ошибка
в итоге необходимо получить файл по шаблону image, но в добавок, чтоб к нему писался номер ... вот как это сделать недомудрю....
|
Цитата:
Цитата Space-06
необходимо получить файл по шаблону image, но в добавок, чтоб к нему писался номер »
|
Попробуйте так:
Код:
@Echo off
SetLocal enabledelayedexpansion
Set Folder=C:\1
Dir %Folder% /B /A-D > %TMP%\FileList.TXT
For /F "Delims=" %%I In (%TMP%\FileList.TXT) Do (
Set /a id+=1
convert.exe "%Folder%\%%I" "%Folder%\image_!id!.jpg"
Del /F /Q "%Folder%\%%I"
)
Del /F /Q %TMP%\FileList.TXT
|
А как быть с SP3.CAB? к примеру я распаковал все содержимое архиватором,в распакованном виде заменил что мне нужно было,теперь нужно все запаковать обратно, не подскажите команду?буду очень признателен!
|
Цитата:
Цитата Маkсим
я распаковал все содержимое архиватором,в распакованном виде заменил что мне нужно было,теперь нужно все запаковать обратно, не подскажите команду? »
|
Цитата:
Цитата E-mpty
: упакует все файлы в папке в CAB »
|
|
Время: 02:57.
© OSzone.net 2001-