Найдите файлы с символами неASCII в именах файлов в Windows XP

Там какой-либо простой способ состоит в том, чтобы найти все файлы в конкретном каталоге, которые имеют какой-либо неASCII (т.е. Unicode) символы в имени файла? Я выполняю Windows XP x64 SP2, файловую систему NTFS.

7
задан 25.01.2011, 12:14

2 ответа

Я закончил тем, что писал сценарий Python для этого. Регистрация его в случае, если это помогает любому. Не стесняйтесь перемещаться в StackOverflow.

import sys, os


def main(argv):
    if len(argv) != 2:
        raise Exception('Syntax: FindUnicodeFiles.py <directory>')

    startdir = argv[1]
    if not os.path.isdir(startdir):
        raise Exception('"%s" is not a directory' % startdir)

    for r in recurse_breadth_first(startdir, is_unicode_filename):
        print(r)


def recurse_breadth_first(dirpath, test_func):
    namesandpaths = [(f, os.path.join(dirpath, f)) for f in os.listdir(dirpath)]

    for (name, path) in namesandpaths:
        if test_func(name):
            yield path

    for (_, path) in namesandpaths:
        if os.path.isdir(path):
            for r in recurse_breadth_first(path, test_func):
                yield r


def is_unicode_filename(filename):
    return any(ord(c) >= 0x7F for c in filename)


if __name__ == '__main__':
    main(sys.argv)
5
ответ дан 07.12.2019, 14:33

Вот является использование метода Powershell:

gci -recurse . | where {$_.Name -match "[^\u0000-\u007F]"}
12
ответ дан 07.12.2019, 14:33

Теги

Похожие вопросы