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]+"}