我目前的 Windows 7 是英文版。我从另一台电脑传输了一些包含非英文字符的文件。请看下面的图片
现在,我想删除它们。但在搜索框中输入此字符不会显示所需的文件。
我如何删除所有包含非英文/非单词字符的文件?
答案1
Cihad,PowerShell 可能是您最好的选择。
我做了一个小测试,使用下面的代码查找文件夹中的所有非英语字符
Get-ChildItem c:\TurkishFileNames\ | where-object {$_.name -match "[^\x00-\x80]+"}
这将返回所有非英文文件名。然后您可以将它们传递给 remove-item,但首先要确定您获取了正确的名称。这里的一个问题是您谈论的是“文件夹”名称,而我用文件名对此进行了测试。
不过,我相信您可以使用相同的技巧。如果您安装了 PowerShell 3.0 或 4.0,则可以在使用 Get-ChildItem 时使用 -directory 仅显示文件夹名称:
Get-ChildItem c:\TurkishFolderNames\ -directory
其余部分类似。你可以从 Microsoft 下载 PowerShell 3.0 或 4.0
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(WMF4.0)
Windows 7 附带 PowerShell 2.0,如果您坚持使用它,您仍然可以使用旧的语法来获取目录:
Get-ChildItem C:\TurkishFolderNames\ | ? {$_.PsIsContainer -eq $true}
然后您可以继续进行其余的操作:
Get-ChildItem C:\TurkishFolderNames\ | ? {$_.PsIsContainer -eq $true} | ? {$_.name -match "[^\x00-\x80]+"}
答案2
答案3
查找具有特定字符的文件的快速方法是电源外壳
dir D:\* -r -include *∓*
您还可以使用unicode 表示法:0x2213
相当于U+2213
$char = [char]0x2213
dir D:\* -r -include *$char*
顺便说一句,使用 Windows 搜索确实能用您的特殊字符给我正确的结果!
您确定没有配置错误吗?(我的配置)