2016-09-17 2 views
0

Я пытаюсь найти специальный символ, используя команду CMD:Как я могу получить символ «...» в findstr в cmd?

findstr /s /i <special_character> *.* 

Персонаж Я хочу найти это

То есть, три точки все сжаты в один символ.

Как это сделать?

+1

этот символ называется [Многоточие] (https: // ан .wikipedia.org/wiki/Ellipsis) и является [символом Юникода] (http://www.fileformat.info/info/unicode/char/2026/index.htm). Извините, но 'findst' [не может справиться с этим] (http://stackoverflow.com/a/15280875/2152082). – Stephan

+0

Есть ли другой способ его поиска? Или для самого шестнадцатеричного кода? – bigcodeszzer

+0

в Юникоде каждый символ кодируется в два байта. Для эллипсиса это «0x20 0x26», к счастью, это два символа ASCII для печати (пробел и '&', поэтому поиск с 'find '&' или 'findstr/c:' &' должен делать. Можете дать ложные срабатывания, когда используется в файле ASCII. – Stephan

ответ

0

Если символьная кодировка текстового файла представляет собой проприетарную кодовую страницу Microsoft Windows 1252 (английский и западная Европа), вы можете использовать FINDSTR.EXE.

Эллипсис в кодировке 1252 находится в 0x85. Чтобы ввести символ в командной строке с использованием кодовой страницы 437, вы удерживаете клавишу Alt при вводе десятичного значения 0x85. Это десятичное значение равно 133.

Введите следующий текст в Блокнот, скопировав и вставив или удерживая клавишу Alt при вводе на цифровой клавиатуре 0133. Сохраните это как myscript.bat.

findstr /L "…" myfile.txt 

cmd Из оболочки, введите TYPE myscript.bat. Он появится, как показано ниже. Это связано с тем, что 133 в кодовой странице 1252 является символом ГОРИЗОНТАЛЬНОГО ЭЛЛИПСИС, но в кодовой странице 437 это ЛАТИНСКОЕ МАЛОЕ ПИСЬМО A С GRAVE.

findstr /L "à" myfile.txt 

Используйте команду chcp, чтобы увидеть кодовую в настоящее время используется в cmd оболочки.

Когда myscript.bat запускается из cmd оболочки, характер у 0x85 элемент кода будет выглядеть как латинская буква А с тяжёлыми, потому что он находится в кодовой странице 437.

+0

chcp показывал 437, но когда я держу alt и type «133» ничего не происходит. – bigcodeszzer

+0

То есть, он просто вводится как буквальный номер 133 – bigcodeszzer

+0

Откройте «Блокнот» и удерживайте клавишу «Alt» и введите 133 на клавиатуре. – lit