Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - архивы с именем папок

Ответить
Настройки темы
CMD/BAT - архивы с именем папок

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Друзья помогите, сломал всю голову.
Есть папка C:\TEST\OUT\ внутри неё появляются папки допустим p0001 p0002 p0003 и тд. до p0099
в каждой папке есть файлы *.XML (от 1 до 99)
нужно в директорию C:\TEST\IN\ создать архивы ARJ c файлами из каждой подпапки с именем архива как у подпапки (только файлы без папок)

ну или вопрос как поймать переменную имени подпапки?

дано
C:\TEST\OUT\p0001\01.xml 02.xml 03.xml 04.xml
C:\TEST\OUT\p0002\05.xml 06.xml 07.xml 08.xml
C:\TEST\OUT\p0003\09.xml 10.xml 11.xml 12.xml

надо
C:\TEST\IN\p0001.ARJ
C:\TEST\IN\p0002.ARJ
C:\TEST\IN\p0003.ARJ

Отправлено: 22:10, 16-02-2021

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Как-то так:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFolder=C:\test\OUT

pushd "%sSourceFolder%" && (
	for /f "usebackq delims=" %%i in (
		`2^>nul dir /a:d /o:n /b "p00??." ^| findstr.exe /b /e /r /c:"p00[0-9][0-9]"`
	) do (
		echo [%%~i]
		pushd "%%~i" && (
			"C:\ARJ32\ARJ32.EXE" a "C:\TEST\IN\%%~i.ARJ" ""??.xml""
			popd
		) || (
			echo Can't set current directory to [%%~i]
		)
	)
	popd
) || (
	echo Can't find sorce folder [%sSourceFolder%].
	exit /b 1
)

endlocal
exit /b 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:19, 16-02-2021 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


fiksikyu,
а обязательно ARJ, если бы 7z (zip), то и одной строчки достаточно:
Код: Выделить весь код
@echo off
set "d1=C:\TEST\OUT"
set "d2=C:\TEST\IN"

for /f "delims=" %%a in ('dir /ad/b/s "%d1%\p0*"') do 7z a "%d2%\%%~nxa.7z" "%%a\*"
pause

Последний раз редактировалось alpap, 17-02-2021 в 02:04.

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:50, 17-02-2021 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - архивы с именем папок

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Создание папок с именем дат gon_za Скриптовые языки администрирования Windows 15 12-12-2016 22:47
Доступ - [решено] создание папок на сетевом диске с именем >8 символов hedin63@vk Microsoft Windows 2000/XP 2 18-08-2014 15:35
CMD/BAT - [решено] Поиск папок с определённым именем и их копирование в одну общую Steklopaket Скриптовые языки администрирования Windows 1 16-01-2013 22:33
VBS/WSH/JS - [решено] Создание папок с именем файла и перемещение SySTek Скриптовые языки администрирования Windows 2 02-03-2011 15:38
CMD/BAT - [решено] Удаление всех папок с одним именем на всех дисках volk1234 Скриптовые языки администрирования Windows 15 13-11-2009 02:13




 
Переход