Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Contributor


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

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


Код: Выделить весь код
@Echo Off &Cls
	Set "BoxOut=Z:\Box_Out"

	Set "@S1=File1.txt"
	Set "@S2=File2.txt"
	Set "@S3=File3.txt"
	Set "@S12345=File777.txt"
		
	Pushd "%BoxOut%"||(Echo Folder "%BoxOut%" not found &Pause &Exit /B 2)
	For /f "usebackq tokens=1* delims==" %%i IN (`Set "@S"`) Do >nul 2>&1 Del "%BoxOut%\%%j"
	For /f "usebackq tokens=1* delims=:" %%i IN (`FindStr /R /N /C:"^:@S" "%~dpnx0"`) Do Call :Out %%i %%j
Pause
Exit /B

:Out
	Call Set "OutFile=%%%2%%"
	For /f "usebackq delims=" %%s IN (`More +%1 "%~dpnx0"`) Do (
		Echo "%%s"|>nul Find ":@S"&&Exit /B
		>>"%BoxOut%\%OutFile%" Echo %%s
	)
Exit /B

:@S1
C:\Program Files\1 skjhdk kslhjdljsl sl;djl;jlsjd.txt
C:\Program Files\Advanced IP Scanner\2 sslm jds;ll; dalj;al lajl;akjsl;ka.png
C:\Program Files (x86)\3 aklljalkjs akjslkajlasjl akljlakjljs.dbf

:@S2
C:\Program Files\4 adSA SDASD DADADD.xls
C:\Program Files (x86)\5 aSDFDSA CSAS SAASAS.doc

:@S12345
8 adSA SDASD DADADD.xls
9 aSDFDSA CSAS SAASAS.doc

:@S3
C:\Program Files (x86)\6 adSA SDASD DADADD.xls
C:\Program Files\7 aSDFDSA CSAS SAASAS.doc
1. Списки должны быть последними в батнике.
2. Перед списками обязательно должен быть Exit
3. Список должен именоваться @Sxxxx и начинаться :@Sxxxx
4. Для каждого списка должно указываться имя выходного файла. Для разных списков выходной файл может совпадать.

В примере списков имена файлов абсолютно условны и могут быть как с путями, так и без - это уже тонкости, не указанные постановкой

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 11-04-2025 в 17:10.

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

Отправлено: 16:59, 11-04-2025 | #10