CMD/BAT - [решено] батник для apxивaции набора пaпок
-
r-studio
Re: CMD/BAT - [решено] батник для apxивaции набора пaпок
вроде делал все так, но ошибка пути нашлась?
-
r-studio
Re: CMD/BAT - [решено] батник для apxивaции набора пaпок
r-studio, на Вашем скриншоте невозможно разобрать буквы.
-
Iska
Re: CMD/BAT - [решено] батник для apxивaции набора пaпок
Цитата r-studio:
Отправил личное сообщение.
Получил.
Как я и предполагал, Вы не придали должного внимания моему замечанию:
Цитата Iska:
О формате файла-списка, содержащего имена файлов и папок, прочтите в документации:
Код:
Обратите внимание на кодировку файла-списка.
В итоге, Ваш файл «listfile.txt» в кодировке ANSI/1251, а 7-zip по умолчанию ожидает увидеть там UTF-8:
Цитата:
For list files, 7-Zip uses UTF-8 encoding by default. You can change encoding using -scs switch.
Варианта два:
1. Сохранить файл-список в кодировке UTF-8.
2. Оставить кодировку ANSI/1251, а в командную строку вызова 7-Zip'а добавить параметр «-scsWIN»:
Код:
Отправил личное сообщение.
CMD/BAT - [решено] батник для apxивaции набора пaпок
Получил.
Как я и предполагал, Вы не придали должного внимания моему замечанию:
Цитата Iska:
О формате файла-списка, содержащего имена файлов и папок, прочтите в документации:
Код:
Код: Выделить всё
hh.exe "mk:@MSITStore:%ProgramFiles%\7-Zip\7-zip.chm::/cmdline/syntax.htm#ListFile"Обратите внимание на кодировку файла-списка.
CMD/BAT - [решено] батник для apxивaции набора пaпок
В итоге, Ваш файл «listfile.txt» в кодировке ANSI/1251, а 7-zip по умолчанию ожидает увидеть там UTF-8:
Непрочитанное Вами в файле справки 7-Zip…
Цитата:
For list files, 7-Zip uses UTF-8 encoding by default. You can change encoding using -scs switch.
Варианта два:
1. Сохранить файл-список в кодировке UTF-8.
2. Оставить кодировку ANSI/1251, а в командную строку вызова 7-Zip'а добавить параметр «-scsWIN»:
Код:
Код: Выделить всё
"%ProgramFiles%\7-Zip\7z.exe" a -ir@%sFolderList% -scsWIN "%sFileName%"-
r-studio
-
Iska
Re: CMD/BAT - [решено] батник для apxивaции набора пaпок
Цитата r-studio:
а где, косяк то?
Возможно, здесь:
Цитата r-studio:
Кaк нaписaть пaкетный фaйл, apхивиpующий нaбop пaпoк
А Вы указываете перечень файлов. Уберите «r» из «-ir@%sFolderList%».
Код:
Код:
а где, косяк то?
CMD/BAT - [решено] батник для apxивaции набора пaпок
Возможно, здесь:
Цитата r-studio:
Кaк нaписaть пaкетный фaйл, apхивиpующий нaбop пaпoк
CMD/BAT - [решено] батник для apxивaции набора пaпок
А Вы указываете перечень файлов. Уберите «r» из «-ir@%sFolderList%».
читать дальше »
Код:
Код: Выделить всё
@echo off
setlocal enableextensions enabledelayedexpansion
call :GetDateTime
set sFileName=%DateTime:~0,4%_%DateTime:~4,2%_%DateTime:~6,2%#%DateTime:~8,2%_%DateTime:~10,2%.zip
set sFolderList=%~1
if defined sFolderList (
if exist "%sFolderList%" (
"%ProgramFiles%\7-Zip\7z.exe" a -i@%sFolderList% -scsWIN "%sFileName%"
) else (
echo Can't find folder list file [%sFolderList%].
)
) else (
echo Usage: %~nx0 ^
)
endlocal
exit /b 0
rem ==========================================================================
rem Функция GetDateTime()
rem
rem Серый форум / CMD/BAT: получение формата дата-время для имени файла
rem (http://forum.script-coding.com/viewtopic.php?id=5066)
rem ==========================================================================
:GetDateTime
setlocal enableextensions enabledelayedexpansion
set sProcName=%~0
for /f "delims=." %%i in ('wmic.exe OS get LocalDateTime ^| find "."') do set sDateTime=%%i
endlocal & set %sProcName:~4%=%sDateTime:~0,14%
exit /b 0
rem ==========================================================================Код:
Код: Выделить всё
╔═══════════════════════ H:\флеха ═╤══════╤════════╤═════╗╔════════════════════════ E:\123 ══╤══════╤════════╤═23:31
║и Имя │Размер│ Дата │Время║║с Имя │Размер│ Дата │Время║
║⌂.. │ Вверх│15.06.13│23:28║║⌂.. │ Вверх│15.06.13│23:29║
║ǂданные диссераl xls│ 0│15.06.13│23:28║║ 2013_06_15#23_29 zip│ 334│15.06.13│23:29║
║ǂКак пользоваться DOS docx│ 0│15.06.13│23:28║║►1 bat│ 1130│15.06.13│23:29║
║ │ │ │ ║║ listfile txt│ 66│15.06.13│19:41║
║ │ │ │ ║║ │ │ │ ║
║ │ │ │ ║║ │ │ │ ║
║ │ │ │ ║║ │ │ │ ║
║ │ │ │ ║║ │ │ │ ║
║ │ │ │ ║║ │ │ │ ║
║ │ │ │ ║║ │ │ │ ║
║ │ │ │ ║║ │ │ │ ║
║ │ │ │ ║║ │ │ │ ║
║ │ │ │ ║║ │ │ │ ║
║ │ │ │ ║║ │ │ │ ║
║ │ │ │ ║║ │ │ │ ║
║ │ │ │ ║║ │ │ │ ║
║ │ │ │ ║║ │ │ │ ║
║ │ │ │ ║║ │ │ │ ║
╟──────────────────────────────────┴──────┴────────┴─────╢╟──────────────────────────────────┴──────┴────────┴─────╢
║⌂.. ║║►1.bat ║
╚═══════════════ 0 (2) ═══ 2,444,247,040 ════════════════╝╚══════════════ 1,530 (3) ═══ 118,665,216 ═══════════════╝
E:\123>1.bat listfile.txt
7-Zip 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
Scanning
Updating archive 2013_06_15#23_29.zip
Compressing данные диссераl.xls
Compressing Как пользоваться DOS.docx
Everything is Ok
E:\123> ↑-
r-studio
Re: CMD/BAT - [решено] батник для apxивaции набора пaпок
Ну, с этим-то всё просто. Текущим каталогом при вызове пакетного файла у Вас является «e:\», в котором, понятное дело, нет файла «listfile.txt»
. Либо укажите при вызове абсолютный/относительный путь к файлу-списку, либо предварительно сделайте текущим каталог «e:\123», его содержащий.
. Либо укажите при вызове абсолютный/относительный путь к файлу-списку, либо предварительно сделайте текущим каталог «e:\123», его содержащий.-
r-studio
Re: CMD/BAT - [решено] батник для apxивaции набора пaпок
День добрый!
Прошу помощи.
Интересная тема. Но есть недостаток в таком способе архивирования:
При архивировании нескольких папок общий вес архива может быть очень большим.
Думаю, более рациональным будет архивирование каждой папки в отдельный архив.
Представляю это себе это, как работающий в цикле батник, берущий имена архивируемых директорий из текстового файла.
НО, реализовать не могу.
Прошу помощи.
Интересная тема. Но есть недостаток в таком способе архивирования:
При архивировании нескольких папок общий вес архива может быть очень большим.
Думаю, более рациональным будет архивирование каждой папки в отдельный архив.
Представляю это себе это, как работающий в цикле батник, берущий имена архивируемых директорий из текстового файла.
НО, реализовать не могу.
-
Iska
Re: CMD/BAT - [решено] батник для apxивaции набора пaпок
Ну, с этим-то всё просто. Текущим каталогом при вызове пакетного файла у Вас является «e:\», в котором, понятное дело, нет файла «listfile.txt»
. Либо укажите при вызове абсолютный/относительный путь к файлу-списку, либо предварительно сделайте текущим каталог «e:\123», его содержащий.
. Либо укажите при вызове абсолютный/относительный путь к файлу-списку, либо предварительно сделайте текущим каталог «e:\123», его содержащий.-
akbyn
Re: CMD/BAT - [решено] батник для apxивaции набора пaпок
Из писем в PM:
Цитата r-studio:
а можно Вас попросить в сам код батника … вставить к listfile
например , чтобы в самом батнике было прописано Е:\123\listfile.txt
Цитата r-studio:
тут тема в том, что надо чтобы юзер просто кликнул по батнику и пошла архивация.
без входа в командную строку. Так можно сделать?
Можно. Но не нужно.
Либо научите пользователей перетаскивать файл-список на пакетный файл, либо просто создайте ярлык на пакетный файл, в котором укажите вослед пути к пакетному файлу путь к файлу-списку.
Цитата r-studio:
с этим 7zip гемора многа.
Ничуть.
Цитата r-studio:
а можно Вас попросить в сам код батника … вставить к listfile
например , чтобы в самом батнике было прописано Е:\123\listfile.txt
Цитата r-studio:
тут тема в том, что надо чтобы юзер просто кликнул по батнику и пошла архивация.
без входа в командную строку. Так можно сделать?
Можно. Но не нужно.
Либо научите пользователей перетаскивать файл-список на пакетный файл, либо просто создайте ярлык на пакетный файл, в котором укажите вослед пути к пакетному файлу путь к файлу-списку.
Цитата r-studio:
с этим 7zip гемора многа.
CMD/BAT - [решено] батник для apxивaции набора пaпок
Ничуть.