Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Windows [игнор отключен] [закрыт для гостей] / Как написать bat? / 9 сообщений из 9, страница 1 из 1
23.09.2014, 13:47
    #38754623
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать bat?
Всем привет!

Подскажите, пожалуйста, как написать bat для архивирования файлов в папках и названием архивов названием папок?

Пока написал так:

DO FOR %%i IN (*.*) DO "C:\Program Files\7-Zip\7za920\7za.exe" a -tzip "%%~ni.zip" "%%i"

Так он создает для каждого файла в папке, в которой лежит батник архив с именем файла.

А как мне сделать, чтоб батник обходил папки и файлы в них архивировал в архив с названием папки?

Спасибо.
...
Рейтинг: 0 / 0
23.09.2014, 13:58
    #38754642
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать bat?
mr_virtus,

FOR /R не пробовал?
...
Рейтинг: 0 / 0
23.09.2014, 14:06
    #38754665
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать bat?
DarkMaster,

тоже самое. У меня батник располагается в папке с теми папками,файлы которых нужно архивировать.
Получается столько архивов сколько файлов...

Как можно исправить?
...
Рейтинг: 0 / 0
23.09.2014, 14:13
    #38754680
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать bat?
mr_virtus,

вот так создает столько архивов, сколько файлов:

FOR /R %%i IN (*.exe *.xls) DO "C:\Program Files\7-Zip\7za920\7za.exe" a -tzip "%%~ni.zip" "%%i"

а как написать что создавал столько архивов сколько папок?
...
Рейтинг: 0 / 0
23.09.2014, 15:15
    #38754784
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать bat?
mr_virtus,

Обход всех папок. Архивирование сам вставишь?

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
@echo off
for /D /R %%i in (".") do call :process "%%i"
exit

:process
:: выводим имя папки
set DNAME="%~dp1"
echo %DNAME%
exit /b
...
Рейтинг: 0 / 0
23.09.2014, 15:26
    #38754809
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать bat?
DarkMaster,

спасибо, я написал так:

FOR /D /R %%i IN (".") DO "C:\Program Files\7-Zip\7za920\7za.exe" a -tzip "%%~ni.zip" "%%i"

Но не работает. Создается пустая папка .zip

А мне нужна такая структура

авторfile.bat
dir1
-- file1.txt
-- file2.csv
dir2
-- file3.txt
-- file4.csv

Я хочу запустить батник и получить:

авторdir1.zip
-- file1.txt
-- file2.csv
dir2.zip
-- file3.txt
-- file4.csv

Как это можно сделать?
...
Рейтинг: 0 / 0
23.09.2014, 15:54
    #38754874
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать bat?
mr_virtus,

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

Или в моем примере вместо echo %DNAME% сделай:
_архиватор_ _ключи_ "%DNAME%*.*" т.е. заархивировать все файлы в каталоге %DNAME% по маске *.*
...
Рейтинг: 0 / 0
23.09.2014, 16:07
    #38754897
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать bat?
DarkMaster,

D:\Temp\Test>echo D:\Temp\Test\"."
D:\Temp\Test\"."

D:\Temp\Test>echo D:\Temp\Test\dir1\"."
D:\Temp\Test\dir1\"."

D:\Temp\Test>echo D:\Temp\Test\dir2\"."
D:\Temp\Test\dir2\"."

Это после команды:

D:\Temp\Test>FOR /D /R %i IN (".") DO echo %i


А в архиваторе:

"C:\Program Files\7-Zip\7za920\7za.exe" a -tzip "%%~ni.zip" "%%i"

a - это добавить запись -tzip какой будет архив, название архива и что добавлять.
...
Рейтинг: 0 / 0
24.09.2014, 11:26
    #38755785
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать bat?
mr_virtus,

разобрался, всем спасибо.


Может кому-то пригодиться:

FOR /D %%i IN (*) DO (
pushd "%%i"
"C:\Program Files\7-Zip\7za920\7za.exe" a -tzip "..\%%~ni.zip" *
popd
)
...
Рейтинг: 0 / 0
Форумы / Windows [игнор отключен] [закрыт для гостей] / Как написать bat? / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]