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

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

Ответить
Настройки темы
CMD/BAT - [решено] Поиск слов по маске

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


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

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


Увидел забавную картинку и задался вопросом.
Как в смд искать слова по маске?
Посмотреть картинку

Тут зашифровано слово ХИТРЕЦ.

Соответственно из текстового файла со списком всех русских слов
хочу по маске ?и???ц найти слово хитрец
Я так понял что нативные find и findstr так не умеют.
Какой программой под смд можно найти слова по маске?
Может grep умеет?

Отправлено: 17:26, 24-01-2020

 

Ветеран


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

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


ateka, а запустите-ка интерпретатор команд "%comspec%" /k и выполните в нём команду chcp — что покажет?

Отправлено: 21:25, 25-01-2020 | #21



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

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


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


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

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


Iska, 65001
Но принудительная смена кодировки результата не даёт.
В 866 принципиально не ищет.

Отправлено: 08:49, 26-01-2020 | #22


Ветеран


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

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


Цитата ateka:
Iska, 65001 »
.

Цитата ateka:
Но принудительная смена кодировки »
Как это выглядит — «принудительная смена кодировки»?

Отправлено: 10:52, 26-01-2020 | #23


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


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

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


Код: Выделить весь код
chcp 866
type russian_866.txt | findstr.exe /i /r /c:"^[а-яё]и[а-яё][а-яё][а-яё]ц$"
Не ищет.

Отправлено: 11:37, 26-01-2020 | #24


Ветеран


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

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


ateka, при этом кодировка самого пакетного файла также OEM/866?
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:01, 26-01-2020 | #25


Ветеран


Contributor


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

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


Вложения
Тип файла: txt я200126.bat.txt
(149 байт, 2 просмотров)

ateka,
Цитата Iska:
ateka, при этом кодировка самого пакетного файла также OEM/866? »
Распакуйте мой архив из предыдущего поста со словарем и батником, возьмите прикреплённый файл в этом посте, поместите его рядом с распакованным vocabulary.txt, переименуйте его из txt в bat, ничего больше не изменяйте. Запустите именно его. И?

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


Отправлено: 13:46, 26-01-2020 | #26


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


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

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


Цитата Iska:
при этом кодировка самого пакетного файла также OEM/866? »
Ага.
Цитата megaloman:
Запустите именно его. И? »
Не ищет. Даже русские буквы в 866 не отображает.
Картинка

Отправлено: 15:52, 26-01-2020 | #27


Ветеран


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

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


ateka, неее ...
вы сделайте такой скриншот
Файл 160204

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

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

Отправлено: 12:20, 27-01-2020 | #28


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


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

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


alpap, Батники в 866. Гарантированно. Оболочка по умолчанию в 65001. Никак 2020 на дворе.

Отправлено: 14:28, 27-01-2020 | #29


Ветеран


Contributor


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

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


Вложения
Тип файла: rar я200127.rar
(131.9 Kb, 5 просмотров)

ateka,
Попробуйте VBS.
Код: Выделить весь код
'FileIn = "D:\CMD_Forum\Box_In\vocabularyUTF8.txt"
FileIn = "vocabularyUTF8.txt"

nword = 3

On Error Resume Next

With CreateObject("ADODB.Stream")
    .Charset = "utf-8"
    .Open
    .LoadFromFile (FileIn)
    If Err.Number <> 0 Then
        MsgBox "File   " + FileIn + vbCrLf + Err.Description + "(" + CStr(Err.Number) + ")"
        WScript.Quit 2
    End If
    On Error GoTo 0
    
    Alls = Split(.ReadText(), vbCrLf)
    .Close
End With
On Error GoTo 0

With CreateObject("VBScript.RegExp")
    .IgnoreCase = True
    .Global = True
    Mask = ""
    Do
        Mask = InputBox("Маска содержит русские буквы и точки, например" + vbCrLf + ".и...ц", "Поиск слов по маске", Mask)
        If Mask = "" Then Exit Do
        .Pattern = "^" + Trim(Mask) + "$"
        
        out = ""
        i = 0
        For Each word In Alls
            word = Trim(word)
            If .Test(word) Then
                If i = 0 Then out = out + word Else out = out + vbTab + word
                i = i + 1
                If i = 3 Then
                    i = 0
                    out = out + vbCrLf
                End If
            End If
        Next
        If out = "" Then
            R = MsgBox("По маске    " + """" + Mask + """" + vbCrLf + "Ничего не найдено", vbRetryCancel)
        Else
            R = MsgBox(out, vbRetryCancel, "Маска " + """^" + Trim(Mask) + "$"". Найдено:")
        End If
        If R = 2 Then Exit Do
    Loop

End With
Интересно, сработает? Скрипт сохранить в 1251-кодировке. Словарь - в UTF-8. Прилагаю и то и другое в архиве
А вообще-то нестандартные настройки рано или поздно выходят боком

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


Последний раз редактировалось megaloman, 27-01-2020 в 20:17.

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

Отправлено: 19:03, 27-01-2020 | #30



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - Множественная замена слов по маске на случайные. artjuice Скриптовые языки администрирования Windows 2 09-12-2015 19:10
CMD/BAT - Поиск файлов по маске на удаленных машинах по словарю с выгрузкой в *.txt gremlintv2 Скриптовые языки администрирования Windows 3 09-12-2013 04:46
Поиск слова в txt затем поиск по маске "(383)" и вывод инфы rustoss AutoIt 10 29-09-2011 15:27
CMD/BAT - [решено] Поиск файла по маске и по дате Баян Скриптовые языки администрирования Windows 2 14-03-2011 13:32
Поиск слов не по документу, а по документам :) Sev Хочу все знать 4 26-01-2009 12:41




 
Переход