Wie sucht man in Windows nach einem benutzerdefinierten Zeichen?

Wie sucht man in Windows nach einem benutzerdefinierten Zeichen?

Mein aktuelles Windows 7 ist auf Englisch. Ich habe einige Dateien von einem anderen Computer übertragen, die nicht-englische Zeichen enthalten. Sehen Sie sich das Bild unten an

Bildbeschreibung hier eingeben

Jetzt möchte ich sie alle löschen. Aber wenn ich dieses Zeichen in das Suchfeld eintippe, werden die gewünschten Dateien nicht angezeigt.

Bildbeschreibung hier eingeben

Wie kann ich alle Dateien löschen, die nicht-englische Zeichen bzw. keine Wortzeichen enthalten?

Antwort1

Cihad, PowerShell ist hier wahrscheinlich Ihre beste Wahl.

Ich habe einen kleinen Test gemacht, um alle nicht-englischen Zeichen in einem Ordner mit dem folgenden Code zu finden

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

Dadurch werden alle nicht-englischen Dateinamen zurückgegeben. Sie können sie dann an remove-item übergeben, aber stellen Sie zunächst sicher, dass Sie die richtigen Namen erhalten. Ein Problem dabei ist, dass Sie von „Ordner“-Namen gesprochen haben, und ich habe dies mit Dateinamen getestet.

Ich glaube jedoch, dass Sie denselben Trick verwenden können. Wenn Sie PowerShell 3.0 oder 4.0 installiert haben, können Sie -directory verwenden, um bei Verwendung von Get-ChildItem nur Ordnernamen anzuzeigen:

Get-ChildItem c:\TurkishFolderNames\ -directory

Der Rest wird ähnlich sein. Sie können PowerShell 3.0 oder 4.0 von Microsoft herunterladen.

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 wurde mit PowerShell 2.0 ausgeliefert. Wenn Sie dabei bleiben, können Sie weiterhin die alte Syntax verwenden, um ausschließlich Verzeichnisse abzurufen:

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

Anschließend können Sie mit dem Rest fortfahren:

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

Antwort2

Wie von meinem guten Freund Adam hier übernommen:Eine Suche nach Dollarbeträgen im Dateinamen ist nicht möglich.

Möglicherweise müssen Sie Ihre Suche folgendermaßen einschließen:

~="searchterm"

Antwort3

Eine schnelle Möglichkeit, Dateien mit einem bestimmten Zeichen zu finden, istPower Shell

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

Sie können auchUnicode-Notation: 0x2213ist äquivalent zuU+2213

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

Übrigens, wenn ich die Windows-Suche verwende, bekomme ich mit deinen Sonderzeichen das richtige Ergebnis!
Bist du sicher, dass du nichts falsch konfiguriert hast? (Meine Konfiguration)

Bildbeschreibung hier eingeben

verwandte Informationen