Моя конечная цель - установить на сервере Windows скрипт, который будет находить любые файлы в заданной папке, содержащие непечатные символы, отличные от ASCII, и перемещать эти файлы в другую папку.

Чтобы найти файлы, я подумал, что могу использовать что-то вроде этого, но это не работает:

findstr /m /r /c:"[^\x20-\x7e\r\n]" *.txt

Чтобы упростить задачу, скажем, у меня есть два текстовых файла, 1.txt и 2.txt, которые содержат "abcdefg" и "defghijk" соответственно. Эта команда вернет "2.txt" в выводе, как и ожидалось:

findstr /m /r /c:"[^a-g]" *.txt

Однако замена шестнадцатеричных кодов \x61 и \x67 на «a» и «g» завершается неудачно без вывода:

findstr /m /r /c:"[^\x61-\x67]" *.txt

Не похоже, что вы можете использовать шестнадцатеричные значения в классе символов с помощью утилиты findstr. Как еще я могу достичь своей цели? Можно ли это сделать с помощью пакетных сценариев Windows?

0