3

Моя текущая Windows 7 на английском языке. У меня есть некоторые файлы, перенесенные с другого компьютера, который содержит не английские символы. Посмотрите на картинку ниже

Теперь я хочу удалить их все. Но запись этого символа в поле поиска не дает желаемых файлов.

Как я могу удалить все файлы, которые содержат не английские / несловарные символы?

3 ответа3

2

Cihad, PowerShell, вероятно, ваш лучший выбор здесь.

Я сделал небольшой тест, чтобы найти все неанглийские символы в папке, используя код ниже

Get-ChildItem c:\TurkishFileNames\ | where-object {$_.name -match "[^\x00-\x80]+"}

Это возвращает все эти неанглийские имена файлов. Затем вы можете передать их в remove-item, но сначала убедитесь, что вы получаете правильные имена. Один недостаток - вы говорили об именах «папок», и я проверил это с именами файлов.

Тем не менее, я считаю, что вы можете использовать тот же трюк. Если у вас установлен PowerShell 3.0 или 4.0, вы можете использовать -directory для отображения только имен папок при использовании Get-ChildItem:

Get-ChildItem c:\TurkishFolderNames\ -directory

Остальное будет похоже. Вы можете скачать PowerShell 3.0 или 4.0 от Microsoft

http://www.microsoft.com/en-us/download/details.aspx?id=34595 (WMF 3.0)

http://www.microsoft.com/en-us/download/details.aspx?id=40855 (WMF 4.0)

Windows 7 шла с PowerShell 2.0, если вы будете придерживаться этого, вы все равно можете использовать старый синтаксис только для получения каталогов:

Get-ChildItem C:\TurkishFolderNames\ | ? {$_.PsIsContainer -eq $true}

Затем вы можете продолжить с остальными:

Get-ChildItem C:\TurkishFolderNames\ | ? {$_.PsIsContainer -eq $true} | ? {$_.name -match "[^\x00-\x80]+"}
0

Как взято у моего хорошего друга Адама здесь: Не могу найти суммы в долларах, которые есть в имени файла.

Вам может понадобиться обернуть ваш поиск следующим образом:

~="searchterm"

0

Быстрый способ поиска файлов с определенным символом - Powershell

dir D:\* -r -include *∓*

Вы также можете использовать Unicode-нотацию: 0x2213 эквивалентно U+2213

$char = [char]0x2213
dir D:\* -r -include *$char*

Btw. использование поиска Windows дает мне правильный результат с вашими специальными символами!
Вы уверены, что не что-то неправильно настроили? (Мой конфиг)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .