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

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

Ветеран


Contributor


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

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


John87, Дайте реальный файл и что надо удалять. Догадками задачу не решить. CMD команда, способная делать множественный поиск - FindStr - работает с поиском строк в кириллице только в 866 кодировке. С учетом этого вариант (там я привёл только варианты поиска с латиницей):
Код: Выделить весь код
@Echo Off
cls
	Set "BoxIn=Z:\Logs"
	Set "Log=*.txt"
	Set KeyWord=/C:"files not found" /C:"(sec.)" /C:"#imp.Statuses" /C:"error file size"

	FOR /F "usebackq skip=1 delims=" %%d IN (`2^>nul Dir "%BoxIn%" /A:D /O:-D /T:C /B`) DO (
		Echo "%BoxIn%\%%d\%%d"
		If Not Exist "%BoxIn%\%%d\%%d.txt" (
			FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\%%d\%Log%" /A:-D /B /O:D /T:C`) DO (
				2>nul >>"%BoxIn%\%%d\%%d.txt" (More "%BoxIn%\%%d\%%f"|FindStr /I /V %KeyWord%)
				Del "%BoxIn%\%%d\%%f"
			)
		)
		GoTo :End
	)
:End
pause
Exit /B
А не проще ли переформулировать задачу: надо не удалять какие-то строки из исходных файлов, а сохранить некоторые строки в другой файл по заданным ключам поиска, если они в латинице?

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


Отправлено: 13:14, 08-10-2022 | #16