Verwenden der Windows-Suche nach Dateien, die "Leerzeichen" enthalten?

947
B00nD0ggie

Es tut mir sehr leid, wenn dies an anderer Stelle veröffentlicht wurde. Ich suche nun schon seit zwei Tagen nach dieser Antwort und mein Kopf tut so weh. Ich hatte vor einigen Jahren eine alte Sicherung meines Spieleverzeichnisses, die von Windows 7 erstellt wurde, und ich versuche, es wiederherzustellen, aber die Sicherung wurde durcheinander gebracht, als ich versuchte, auf die Festplatte zu schreiben. Windows wurde seltsam und platzierte "Leerzeichen" (nicht das Wort Leerzeichen, sondern Leerzeichen) vor der Erweiterung jeder Datei (Hunderttausende von Dateien!), Die jetzt mit meinem aktuellen Spieleverzeichnis gemischt ist. Aufgrund des Leerzeichens (ist Leerzeichen überhaupt ein Zeichen?), Werden meine Dateien von den Spielen nicht gelesen.

Ich muss nach Dateien mit Leerzeichen suchen (kann keine spezielle Suche durchführen, da ich nicht wissen kann, wie nach Dateien gesucht wird, die "Leerzeichen" enthalten). Wenn möglich, entfernen Sie den Speicherplatz aller betroffenen Dateien aus diesem bestimmten Bereich (Es muss sich um einen bestimmten Bereich handeln, da in vielen Dateien Speicherplatz vorhanden ist. Dies war jedoch auf ihre ursprüngliche Formulierung zurückzuführen, z. B. "ba room 56.xxx"), die nach "Windows Room" zu "ba room 56 .xxx" wurde. HINWEIS : Leerzeichen zwischen 56 und "." im letzten Beispiel.)

Bitte helfen

0
Suche mit Anführungszeichen. Biswapriyo vor 6 Jahren 2
Bulk Rename Utility könnte eine andere Option sein - http://www.bulkrenameutility.co.uk/Main_Intro.php Anaksunaman vor 6 Jahren 0
Kannst du ein Textbeispiel bekommen? B00nD0ggie vor 6 Jahren 0
Ich habe auch Bulk Rename ausprobiert, aber es war verwirrend, als ich versuchte, das Leerzeichen an einem bestimmten Ort zu entfernen. Es scheint, es werden nur ALLE Leerzeichen entfernt, nicht dort, wo ich das Leerzeichen entfernen muss. B00nD0ggie vor 6 Jahren 0
@ B00nD0ggie Ich habe eine Antwort mit dem Bulk Rename-Dienstprogramm gepostet. Vielleicht möchten Sie einen Blick darauf werfen. Anaksunaman vor 6 Jahren 0

1 Antwort auf die Frage

0
Anaksunaman

Überblick

  • Abschnitt 1 - Umbenennen von Dateien mit Bulk Rename Utility.

  • Abschnitt 2 - Vorschläge zur Gruppierung von Dateien, um die Verarbeitung zu erleichtern.

  • Abschnitt 3 - Suchen nach Dateien mit Leerzeichen im Namen unmittelbar vor der Erweiterung.

  • Abschnitt 4 - Exportieren einer Liste dieser Dateien als Textdatei.


Bulk Rename Utility verwenden

Nach meinem Verständnis hatten Sie einige Probleme mit dem Bulk Rename Utility .

Angenommen, Ihre Beschreibung ist korrekt (und es gibt einfach ein oder mehrere Leerzeichen als letzte Zeichen vor der Erweiterung, z. B. "ba room 56 .xxx"). Dann können Sie die TrimFunktion einfach verwenden, Remove (5)ohne die Optionen zu ändern:

Ex. Vorschau der Ergebnisse

Entfernen Sie Leerzeichen vor der Erweiterung - Bulk Rename Utility

Deutlich sein:

  • Wählen Sie alle Elemente im Hauptfenster mit Aktionen → Alles auswählen ( Ctrl+ A) aus.

  • Klicken Sie auf das TrimKontrollkästchen Remove (5).

Sie werden feststellen, dass nur die zu ändernden Namen grün angezeigt werden. Ebenso werden nur Dateien und keine Ordner umbenannt. Wenn Sie zufrieden sind, klicken Sie auf die Schaltfläche Umbenennen in der rechten unteren Ecke.

Wenn Sie möchten, können Sie das gesamte Fenster für die Umbenennungskriterien zurücksetzen (falls Sie mit anderen Optionen herumalbern oder sich nur vorsichtig fühlen), indem Sie Aktionen → Alle Umbenennungskriterien zurücksetzen ( Ctrl+ T).

Einschließlich Unterverzeichnisse

Das Dienstprogramm zur Massenumbenennung kann normalerweise nur für einen einzigen Stammordner gleichzeitig ausgeführt werden. Es ist jedoch möglich, Unterverzeichnisse einzuschließen:

Ex. Ersetzungen in Unterverzeichnissen

Ersetzen des Unterordners für das Massenumbenennungsprogramm

Sie können diese Ordner einschließen, indem Sie den Filters (12)Abschnitt des Hauptfensters verwenden. Einfach markieren Subfolders:

Ex. Filteroptionen

Bulk Rename Utility Folder Filters

Ich habe auch das Kontrollkästchen deaktiviert Folders, um das visuelle Durcheinander im Vorschaufenster zu reduzieren (unsere Verwendung von Trimwirkt sich, wie bereits erwähnt, auf Ordner nicht aus.) Nachdem Sie die richtigen Filteroptionen ausgewählt haben, verwenden Sie Alle auswählen, Trimund Umbenennen wie oben.


Dateien mit Leerzeichen gruppieren

In Ihrem Fall kann das Bulk Rename-Dienstprogramm die zu ändernden korrekten Dateinamen ohne zusätzliche Aktion ermitteln (weisen Sie es einfach auf das richtige Verzeichnis, in dem sich diese Dateien befinden). Dateien, die nicht Ihren Kriterien entsprechen, werden automatisch ignoriert.

Wie Sie jedoch wissen, gibt es eine große Anzahl von Dateien, und das Dienstprogramm Bulk Rename hat möglicherweise Probleme, alle Dateien gleichzeitig zu verarbeiten. Als Vorschlag kann ich erwägen, Dateien in temporären Verzeichnissen mit jeweils etwa 50-100 Dateien zu gruppieren.


Ich schlage zwar eine Batchdatei vor, die Sie weiter unten unterstützt, gruppiert Dateien jedoch nicht nach einer bestimmten Anzahl. Sie müssen immer noch neue Verzeichnisse erstellen und diesen Teil manuell ausführen, wenn Sie dies wünschen. In ähnlicher Weise müssen Sie es nacheinander verschieben und ausführen.


Batch-Dateisortierung

Um die Verarbeitung einer so großen Anzahl von Dateien zu erleichtern, können Sie Dateien mit Leerzeichen unmittelbar vor der Erweiterung mit einer Batchdatei aussortieren:

  • Öffnen Sie ein neues Dokument in Windows Notepad und kopieren Sie die folgenden Zeilen:

    if not exist %~dp0tempspace md %~dp0tempspace move /-y %~dp0"* .*" %~dp0tempspace pause 
  • Wählen Sie Speichern unter Save as typeund wählen Sie All Files (*.*).

  • Ändern Sie die Dokumenterweiterung in .bat(Windows-Batchdatei), indem Sie zB findspaces.bat eingeben .

  • Klicken Sie auf Speichern .

Wenn dies korrekt durchgeführt wird, sollte der Dateiname so geändert werden, dass er die .batErweiterung enthält, und das Symbol für die neue Datei sollte sich in ein Feld mit Zahnrädern im Explorer (und nicht auf ein Blatt Papier) ändern.

Legen Sie diese Batchdatei in einem Ordner ab, der Ihrer Meinung nach Dateien mit Leerzeichen unmittelbar vor der Erweiterung enthält, und doppelklicken Sie, um sie auszuführen. Alle übereinstimmenden Dateien werden in einen neuen Ordner mit dem Namen Tempspace verschoben . Wiederholen Sie den Vorgang ggf. für weitere Ordner und Unterverzeichnisse, und verschieben Sie die Stapeldatei jedes Mal.

Stapeldateianmerkungen

  • Diese Batchdatei durchsucht keine Unterverzeichnisse (wie oben angedeutet).

  • Es werden alle übereinstimmenden Dateien in das angegebene temporäre Verzeichnis verschoben (nicht nur einige).

  • Sie können zB temporären Speicherplatz durch einen beliebigen Ordnernamen ersetzen, aber ich würde Leerzeichen vermeiden. Beachten Sie ebenfalls den Platzmangel zwischen %~dp0und den Ordnernamen.

  • Anstelle aller Dateien mit Leerzeichen vor dem Namen ( "* .*") können Sie eine bestimmte Erweiterung verwenden, wenn Sie möchten (z "* .xxx". B. ). Beachten Sie auch hier den Platzmangel zwischen %~dp0und Ihre Suchkriterien sowie den Abstand zwischen dem ersten Sternchen und dem Zeitraum.

  • Während dies nicht zum Speichern neuer Dateien gelten sollte, müssen Sie möglicherweise Erweiterungen in Windows einblenden, um vorhandene Textdateien in eine .batErweiterung zu ändern .


Nach Dateien suchen

Da es hilfreich sein kann (aber nicht unbedingt erforderlich ist), vorab zu wissen, welche Dateien Leerzeichen vor der Erweiterung enthalten, sind hier meine Gedanken zu diesem Thema ...

Es gibt eine Vielzahl von Dienstprogrammen, die Ihnen helfen können. Das heißt, für native Windows-Lösungen gibt es das Kommandozeilen-Dienstprogramm find, aber ich glaube nicht, dass es die Funktionen bietet, die Sie benötigen. In ähnlicher Weise war ich noch nie ein Fan von Windows Search, und ich hätte Zweifel an seiner Hilfsbereitschaft in Ihrer Situation.

Als einfache Alternative würde ich Mythicsofts Agent Ransack empfehlen . Es ist ein kostenloses Dateisuchprogramm, das Sie hier herunterladen können . Beachten Sie, dass Sie sich derzeit keine Gedanken darüber machen müssen, ob Sie das Programm als Privatbenutzer "registrieren" müssen (es funktioniert trotzdem).

Öffnen Sie nach der Installation Agent Ransack und geben Sie im Hauptsuchfenster Folgendes ein:

  • Geben Sie * .*das File nameFeld ein, um nach allen Dateien mit einem oder mehreren führenden Leerzeichen unmittelbar vor der Erweiterung zu suchen. Denken Sie wie bei der Batch-Datei oben an den Abstand zwischen dem ersten Stern und dem Punkt. Sie können natürlich auch wieder eine Erweiterung angeben, z * .xxx*.

  • Vergewissern Sie sich, dass der richtige Stammordner (z. B. der Ordner mit den Spieldateien) im Look inFeld angezeigt wird.

  • Wenn Sie eine umfassende Suche durchführen möchten, sollten Sie dies überprüfen Search subfolders.

Drücken Sie die StartTaste rechts, um nach Dateien zu suchen. Sobald die Suche abgeschlossen ist, sollten Sie die folgenden Ergebnisse sehen:

Ex. Suchergebnisse

Agent Ransack Search Results

Während mein Beispielbild nur ein einziges Verzeichnis zeigt, werden für Ihre tatsächlichen Ergebnisse vollständige Pfade angezeigt, einschließlich Unterverzeichnissen (vorausgesetzt, Sie sind markiert Search subfolders).


Exportieren einer Liste von Dateien

Um eine Liste der Agent Ransack-Suchergebnisse als Textdatei abzurufen, können Sie sie mit DateiErgebnisse exportieren ... exportieren oder das Export resultsSymbol in der Agent Ransack-Symbolleiste verwenden:

Ex. Ergebnisse exportieren

Exports Results Icon

Im Export - Fenster, stellen Sie sicher, dass die Ergebnisse als Textdatei speichern, indem Sie :

  • Die Wahl File.

  • Festlegen eines Exportpfads mit einem entsprechenden Dateinamen.

  • Wählen Sie "Textdatei" für die Format.

  • Sicherstellen Save results for: All filesist markiert.

Klicken Sie unten rechts auf die Schaltfläche Exportieren .

Ex. Fenster exportieren

Export Results Dialog

Dinge mit Notepad ++ reinigen

Leider enthält die exportierte Liste neben dem vollständigen Pfad und Dateinamen auch Informationen, die Sie wahrscheinlich nicht benötigen, z.

C:\path\to\gamefiles\ba room 56 .xxx 1 KB XXX File 2/11/2018 11:56:11 PM [...] 

Um die Pfad- / Dateiinformationen beizubehalten und den Rest zu verwerfen, können wir einen Freitexteditor namens Notepad ++ verwenden (der nicht mit dem normalen Windows-Editor zu verwechseln ist). Wählen Sie einfach auf der Download-Seite entweder das 32-Bit- oder das 64-Bit-Installationsprogramm aus.

Nach der Installation öffnen Sie die Datei SearchResults.txt in Notepad ++. Wählen Sie im Menü Suchen → Ersetzen ... ( Ctrl+ H), um den Dialog Ersetzen aufzurufen.

Sie können dann einen regulären Ausdruck (ein spezielles Suchmuster) verwenden, um die Informationen hervorzuheben, die Sie nicht benötigen. Geben Sie Folgendes in das Find what :Feld ein:

\s\d+\s[A-Z].+$ 

Lassen Sie das Replace with :Feld leer. Stellen Sie sicher, dass die Match case, Wrap aroundund Regular expressionalle Optionen markiert sind. Die . matches newlineOption sollte deaktiviert sein:

Ex. Notepad ++ Dialogfeld "Ersetzen"

Notepad++ Search Results Regular Expression

Wenn Sie fertig sind, klicken Sie rechts auf Alle ersetzen . Sie können die bearbeitete Datei dann speichern, vorausgesetzt, dass alles korrekt aussieht.

Listenbearbeitungshinweise

  • Bitte beachten Sie, dass der von mir vorgeschlagene reguläre Ausdruck für das Entfernen von Daten wahrscheinlich ein wenig überarbeitet werden sollte, er sollte jedoch für von Agent Ransack generierten Text korrekt funktionieren. Lassen Sie mich wissen, wenn Sie auf Probleme stoßen.

  • Diese bearbeitete Liste könnte die Eingabe für ein anderes Skript sein. Wenn Sie es auf diese Weise verwenden möchten, empfiehlt es sich, leere Zeilen zu entfernen. Sie können dies manuell tun, oder Notepad ++ kann dies mit Bearbeiten → Zeilenoperationen → Leere Zeilen entfernen .

  • Durch das Entfernen von Leerzeilen wird auch ein Problem mit Anführungszeichen (normalerweise unsichtbare Zeilen) vermieden, die ausschließlich aus Leerzeichen bestehen (vorausgesetzt, Sie möchten den regulären Ausdruck für Anführungszeilen unten verwenden).

  • Das Zitieren von Pfaden in dieser Liste sollte in den meisten Fällen nicht erforderlich sein (auch wenn die Pfade in der Liste Leerzeichen enthalten). Wenn Sie jedoch feststellen, dass Sie jeden Pfad in der Liste aus irgendeinem Grund angeben müssen, können Sie auch Notepad ++ verwenden. Öffnen Sie einfach den Dialog " Ersetzen " mit regulären Ausdrücken (mit denselben Einstellungen wie oben), verwenden Sie ihn jedoch (.+)im Find what :Feld und "\1"im Replace with :Feld:

Notepad++ Quoted Line Regular Expression

Vielen Dank. Jetzt besteht mein anderes Problem darin, alle Dateien mit dem Platzproblem gruppieren zu können. Auch hier ist das Problem auf einige tausend Dateien verteilt. Würde Bulk diese Dateien umbenennen können? Ich kann die Windows-Suchfunktion nicht verwenden. Ich kenne den Befehl zum Suchen von Dateien mit dem Speicherplatz in einem bestimmten Bereich nicht. B00nD0ggie vor 6 Jahren 0
Herzlich Willkommen Entschuldigen Sie die Verspätung. =) Wenn Sie noch Hilfe benötigen, habe ich zusätzliche Informationen zu Ihrem Kommentar hinzugefügt. Kurz gesagt: In Ihrem Fall erkennt das Bulk Rename-Dienstprogramm Dateien, die automatisch entfernt werden sollen (führende Leerzeichen unmittelbar vor der Erweiterung entfernen). Es kann auch Unterordner enthalten. Das Finden und Gruppieren von Dateien wäre daher nicht direkt ein Problem. Was vielleicht ein Problem sein könnte, ist das Volumen. Zu diesem Zweck habe ich meine Antwort um ein kleines Batch-Skript erweitert, das helfen soll, Dateien mit Leerzeichen unmittelbar vor der Erweiterung auszusortieren. Derzeit funktioniert es jedoch nur für einen einzelnen Ordner. Anaksunaman vor 6 Jahren 0