Wie kopiere ich eine Liste von Dateinamen in eine Textdatei?

17

Wie kann ich die Namen von Dateien in einem Verzeichnis in eine Textdatei oder in eine Zwischenablage kopieren?

Alex G
quelle
1
Wie von hochl erwähnt, geben Sie nicht den Namen des Betriebssystems an ... aber das Wort "batch" bezieht sich implizit auf das berühmte "W" ...: S
climenole
Mögliches Duplikat der Liste "Datei / Ordner erstellen"
Dmitry Grigoryev
Wenn Sie mit dem vollständigen Dateipfad zufrieden sind, halten Sie die Umschalttaste gedrückt, klicken Sie mit der rechten Maustaste auf die markierten Dateien / Ordner und wählen Sie "Als Pfad kopieren". Dadurch erhalten Sie den vollständigen Pfad aller ausgewählten Dateien / Ordner in der Zwischenablage.
Josh

Antworten:

31

Im Windows-Befehlszeileninterpreter (alle Windows-Betriebssysteme) ist das sehr, sehr einfach:

  1. Öffnen Sie eine Eingabeaufforderung (Start -> Ausführen -> cmd Enter)
  2. Navigieren Sie ( cd) zu dem Verzeichnis, dessen Dateien Sie auflisten möchten.
  3. Geben Sie (z. B. ) ein und drücken Sie .dir > output_file_namedir > C:\dir.txtEnter

Öffnen Sie die neu erstellte Textdatei ( C:\dir.txt) und Sie erhalten die vollständige Ausgabe des dirBefehls in diesem Verzeichnis.

Das Größer-als-Symbol ( >) gibt die Ausgabeumleitung an. Es sendet die Ausgabe der meisten Befehle an eine von Ihnen angegebene Datei und ist sehr praktisch, um die Ausgabe von Befehlen zu protokollieren.

Die Ausgabe kann mit allen verschiedenen Optionen gesteuert werden, die zum Anpassen der normalen Ausgabe des Befehls DIR verfügbar sind. Fügen Sie einfach die Ausgabeumleitung am Ende der Argumente hinzu, die Sie an die Textdatei senden möchten.

Update: Erstellen eines Kontextmenüs mit der rechten Maustaste zum Erstellen einer Verzeichnisinhaltsliste

Erstellen Sie eine Batch-Datei und speichern Sie diese unter %windir%\DirList.bat:

@echo off
set dirpath=%1
dir %dirpath% /-p /o:gn > "%dirpath%\DirContents.txt"
exit

Öffnen Sie Ihr SendToVerzeichnis:

Windows 7 / Vista: %appdata%\Microsoft\Windows\SendTo
Windows XP:%USERPROFILE%\SendTo

Erstellen Sie eine neue Verknüpfung, die auf zeigt, DirList.batund rufen Sie sie auf, wie Sie möchten.

Wenn Sie nun mit der rechten Maustaste auf ein Verzeichnis klicken und das SendToUntermenü auswählen, wird Ihr neuer Befehl zum Auflisten des Verzeichnisinhalts angezeigt.

HINWEIS: Dies funktioniert nur, wenn Sie mit der rechten Maustaste auf ein Verzeichnis klicken, und listet nur den Inhalt des Verzeichnisses auf, auf das Sie mit der rechten Maustaste geklickt haben. Die Liste wird auch in diesem Verzeichnis gespeichert (um das Überschreiben anderer Dateien zu vermeiden). Das Skript kann leicht geändert werden, um den Speicherort der Ausgabelistendatei zu ändern.

music2myear
quelle
4
Ich vermute, Sie haben den /bSchalter verpasst . Ohne diese Option werden auch zusätzliche Informationen wie Dateigrößen und Erstellungsdaten in der Datei protokolliert.
Bhargav Bhat
Es kommt wirklich darauf an, was er aufnehmen will. Ich habe das einfachste Set verwendet, um nicht mit zusätzlichen Informationen zu verwechseln. Sie werden sehen, dass ich Informationen hinzugefügt habe, dass die Ausgabe mit allen verfügbaren Optionen des Befehls DIR angepasst werden kann.
music2myear
Was ich tun möchte , ist eine .bat - Datei erstellen Sie den Befehl enthält: dir > dir.txt. Dann kann ich diese Datei in einen beliebigen Ordner kopieren, ausführen und die Textdatei dort anzeigen, ohne eine Eingabeaufforderung zu öffnen und in den Ordnern zu navigieren.
Steven Noto
Das würde funktionieren. Möglicherweise gibt es sogar Möglichkeiten, diese Funktionalität in das Kontextmenü mit der rechten Maustaste zu integrieren.
music2myear
Dieser Link enthält Anweisungen zum Drucken einer Liste, kann jedoch leicht geändert werden. Ich werde sehen, ob ich heute Nachmittag etwas zusammenstellen kann: watchingthenet.com/…
music2myear
9

Über dir /b > files.txtdie Befehlszeile können Sie die Liste der Dateinamen abrufen, in denen sie gespeichert sind files.txt. Fügen Sie ein hinzu, /swenn Sie eine rekursive Auflistung möchten.

Um den Inhalt direkt in die Zwischenablage zu kopieren, leiten Sie die Ausgabe einfach an clip, dh führen Sie aus dir /b | clip.

Bhargav Bhat
quelle
6

Da Sie ein Betriebssystem nicht erwähnt haben, funktioniert es unter * nix wie folgt:

$ find . -maxdepth 1 -type f > /tmp/files.txt

für Dateien im aktuellen Verzeichnis oder

$ find . -type f > /tmp/files.txt

Wenn Sie alle Dateien in einem Verzeichnisbaum erhalten möchten.

hochl
quelle
2

Eine andere Unix-Variante wäre

ls -R > myfile.txt 

Dies würde alles im aktuellen Verzeichnis und in den rekursiven Verzeichnissen auflisten.

ablinkin
quelle
1

Erstellen Sie im Datei-Explorer von Windows eine Verknüpfung im Ordner SendTo und geben Sie den folgenden Befehl ein:

%windir%\system32\cmd.exe /k dir /b "%1"

Entfernen Sie den Text "Start in"

Nachdem der Befehl einmal ausgeführt wurde, können Sie die Standardeinstellungen für das Fenster ändern (z. B. Auswahl mit der Maus anstelle von Bearbeiten → Markieren).

Das einzige Problem ist, dass Sie die erste Zeile ignorieren müssen (dort steht "Datei nicht gefunden").

Ethan
quelle