1

Тема: Вытащить строки

Здравствуйте помогите пожалуйста сделать батник который будет вытаскивать из файла строки, которые содержат 13 символов и среди них есть хотя бы одна буква и одна цифра

2

Re: Вытащить строки

Упакуйте образец файла в архив, выложите на DropMeFiles.

1. Ровно 13 символов? Учитываются ли в этом количестве символы конца строки? Или нет?
2. Буквы какие? Только латиница, только кириллица, и то, и другое?
3. Почему именно пакетный файл?

3

Re: Вытащить строки

1- https://dropmefiles.com/WN24d , не учитывая пробелы
2- Количество символов строки необходимо указывать в bat-файле, латиница(в приоритете) и кириллица
3- ?

4

Re: Вытащить строки

feyk55555, Вы на какие свои вопросы отвечаете, мною не заданные. А мои большей частью игнорируете.

Вот Вам образец кода:

@echo off
setlocal enableextensions enabledelayedexpansion

>nul chcp 1251
type "123.txt" | findstr.exe /r /i /c:"^.............$" | findstr.exe /r /i /c:"[A-Za-z0-9А-Яа-яЁё]"
>nul chcp 866

endlocal
exit /b 0

Первым findstr.exe отбираются строки длиной «13 символов», вторым — содержащие «хотя бы одна буква и одна цифра».

5

Re: Вытащить строки

Не совсем понял код и не получается сделать вывод в новый файл. А ещё остальные нужно в другой файл

6

Re: Вытащить строки

@echo off
setlocal enableextensions enabledelayedexpansion

set sPattern=[A-Za-z0-9А-Яа-яЁё]

>nul chcp 1251
>"NewFile.txt" (
	type "123.txt" | findstr.exe /b /e /r /i /c:"............." | findstr.exe /r /i /c:"%sPattern%"
)
>"OtherStrings.txt" (
	type "123.txt" | findstr.exe /v /b /e /l /g:"NewFile.txt"
)
>nul chcp 866

endlocal
exit /b 0

7

Re: Вытащить строки

alexii
Прошу прощения, я не правильно написал. Нужно из такой базы то, что после ":" проверять (7 символов, не менее 1 буквы и не менее 1 цифры)
https://dropmefiles.com/WE7ao

8

Re: Вытащить строки

И выводить полностью строку, в которой после ":" соответствует, а в другой файл полностью строку, которая не соответствует

9

Re: Вытащить строки

alexiiДобрый день, прошу прощения, я не правильный образец файла скинул. Строки должны быть в формате:
"login@mail.ru:qwe7rty
asd@yandex.ru:123456789qwer"

И нужно получить те строки, где то, что после ":" состоит из N символов и содержит хотя бы одну букву и одну цифру.
Помогите, пожалуйста

10

Re: Вытащить строки

@echo off
setlocal enableextensions enabledelayedexpansion

set /a iCount = 7
set sPattern1=
for /l %%i in (1, 1, %iCount%) do set sPattern1=!sPattern1!.

set sPattern2=[A-Za-z0-9А-Яа-яЁё]
set sSourceFile=C:\Мои проекты\0198\Source file.txt

if exist "%sSourceFile%" (
	>nul chcp 1251
	>"NewFile.txt" (
		type "%sSourceFile%" | 2>nul findstr.exe /e /r /i /c:":%sPattern1%" | 2>nul findstr.exe /r /i /c:"%sPattern2%"
	)
	>"OtherStrings.txt" (
		type "%sSourceFile%" | 2>nul findstr.exe /v /b /e /l /g:"NewFile.txt"
	)
	>nul chcp 866
) else (
	echo Can't find source file [%sSourceFile%].
	exit /b 1
)

endlocal
exit /b 0

iCount — это Ваше число «N символов».