CMD/BAT - [решено] батник для apxивaции набора пaпок

Аватара пользователя
r-studio

Re: CMD/BAT - [решено] батник для apxивaции набора пaпок

Сообщение r-studio »

вроде делал все так, но ошибка пути нашлась?
Аватара пользователя
r-studio

Re: CMD/BAT - [решено] батник для apxивaции набора пaпок

Сообщение r-studio »

r-studio, на Вашем скриншоте невозможно разобрать буквы.
Аватара пользователя
Iska

Re: CMD/BAT - [решено] батник для apxивaции набора пaпок

Сообщение Iska »

Цитата r-studio:



Отправил личное сообщение.
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%"
Аватара пользователя
Iska

Re: CMD/BAT - [решено] батник для apxивaции набора пaпок

Сообщение Iska »

Цитата r-studio:



а где, косяк то?
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пок

Сообщение r-studio »

Iska,



скопировал Ваш поправленный код, где нет r

делаю

вот скрин. опять он недоволен





Аватара пользователя
r-studio

Re: CMD/BAT - [решено] батник для apxивaции набора пaпок

Сообщение r-studio »

Ну, с этим-то всё просто. Текущим каталогом при вызове пакетного файла у Вас является «e:\», в котором, понятное дело, нет файла «listfile.txt» Изображение. Либо укажите при вызове абсолютный/относительный путь к файлу-списку, либо предварительно сделайте текущим каталог «e:\123», его содержащий.
Аватара пользователя
r-studio

Re: CMD/BAT - [решено] батник для apxивaции набора пaпок

Сообщение r-studio »

День добрый!

Прошу помощи.

Интересная тема. Но есть недостаток в таком способе архивирования:

При архивировании нескольких папок общий вес архива может быть очень большим.

Думаю, более рациональным будет архивирование каждой папки в отдельный архив.

Представляю это себе это, как работающий в цикле батник, берущий имена архивируемых директорий из текстового файла.

НО, реализовать не могу.
Аватара пользователя
Iska

Re: CMD/BAT - [решено] батник для apxивaции набора пaпок

Сообщение Iska »

Ну, с этим-то всё просто. Текущим каталогом при вызове пакетного файла у Вас является «e:\», в котором, понятное дело, нет файла «listfile.txt» Изображение. Либо укажите при вызове абсолютный/относительный путь к файлу-списку, либо предварительно сделайте текущим каталог «e:\123», его содержащий.
Аватара пользователя
akbyn

Re: CMD/BAT - [решено] батник для apxивaции набора пaпок

Сообщение akbyn »

Из писем в PM:


Цитата r-studio:



а можно Вас попросить в сам код батника … вставить к listfile

например , чтобы в самом батнике было прописано Е:\123\listfile.txt




Цитата r-studio:



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

без входа в командную строку. Так можно сделать?



Можно. Но не нужно.



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




Цитата r-studio:



с этим 7zip гемора многа.
CMD/BAT - [решено] батник для apxивaции набора пaпок




Ничуть.
Ответить

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