Como incluo códigos de caracteres hexadecimais em um regex ao usar o comando Windows findstr?

0

Meu objetivo final é configurar um script em um servidor Windows que encontre todos os arquivos em uma determinada pasta que contenham caracteres não imprimíveis, não-ASCII, e mova esses arquivos para outra pasta.

Para encontrar os arquivos, pensei que poderia usar algo assim, mas não funciona:

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

Para simplificar o problema, digamos que eu tenha dois arquivos de texto, 1.txt e 2.txt, que contêm "abcdefg" e "defghijk", respectivamente. Este comando retornará "2.txt" na saída como esperado:

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

No entanto, substituir os códigos hexadecimais \ x61 e \ x67 por 'a' e 'g' falha sem saída:

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

Não parece que você pode usar valores hexadecimais em uma classe de caracteres com o utilitário findstr. De que outra forma posso alcançar meu objetivo? É possível fazer com o script em lote do Windows?

    
por Google Fail 27.04.2018 / 23:05

0 respostas