Wie Sie eine TXT-Datei mit einer Liste der Dateinamen in jedem Ordner anzeigen lassen

397
joe_sh

Angenommen, ich habe Ordner A und Ordner B. Ordner A hat die Dateien A1 und A2. Ordner B enthält die Dateien B1 und B2.

Ich möchte in jedem Ordner eine Textdatei erstellen, die die Dateien in diesem Ordner auflistet. Erstellen Sie also im Ordner A die Datei file.txt, in der die Dateinamen A1 und A2 und für B gleich aufgeführt sind

Habe folgendes versucht, aber nicht funktioniert

for /d %%g in ("*") do ( for /r %%y in ("*.mp4") do ( echo file '%%y' ) > ./%%g/mylist.txt )  

Jede Hilfe wird geschätzt

0
Verwenden Sie >> zum Anhängen an die Datei. Ein einzelner `> überschreibt den vorherigen Inhalt, sodass nur der letzte Schreibvorgang erhalten bleibt. LotPings vor 5 Jahren 2
@LotPings vielen Dank. Das brachte mich einen Schritt weiter (unten ist mein aktualisiertes Skript). Das Problem ist jetzt, dass jede der in Ordner A und Ordner B erstellten Dateien ALLE A- und B-Dateien enthält. Ich möchte nur die A-Dateien in die im Ordner A erstellte Datei mylist.txt und die B-Dateien für die Textdatei im Ordner B einfügen. Irgendwelche Vorschläge? Danke noch einmal! `für / d %% g in (" * ") do (` `für / r %% y in (" * .mp4 ") do (` `Echodatei '%% y') >> ./%%g/ mylist.txt ``) ``) ` joe_sh vor 5 Jahren 0

3 Antworten auf die Frage

0
harrymc

Dies ist sehr einfach mit der Eingabeaufforderung zu erreichen:

cd "\path\to\folder-A" dir /b *.mp4 > fileA.txt 

Die Option /bbewirkt, dass nur die bloßen Dateinamen aufgelistet werden.

Danke für den Tipp, aber das brauche ich nicht wirklich. Es gibt eine riesige Anzahl von Ordnern, und ich muss sie in einem wiederverwendbaren Skript automatisieren (daher die Batch-Datei). Jeder Hinweis, wie dies in einer Batch-Datei erreicht werden kann, wird geschätzt. joe_sh vor 5 Jahren 0
Was ist das Problem bei der Verwendung von 'dir' in einem Batch-Skript? harrymc vor 5 Jahren 0
0
LotPings

Beim Starten %Base%dieses Ordners durchläuft dieser Stapel die Ordnerstruktur und erstellt mylist.txtalle darin enthaltenen Dateien %ext%, deren vorangestellte fileund in einfache Anführungszeichen eingeschlossene Dateien enthalten sind .

:: Q:\Test\2018\10\27\SO_1370390.cmd @Echo off Set "Base=X:\start\path" Set "ext=.mp4"  for /R "%Base%" %%A in (.) do ( ( for %%B in ("%%~fA\*%ext%") do Echo file '%%~fB' ) >"%%~fA\mylist.txt" ) 
0
MC ND

for /d /r . %%a in (*) do >"%%a\myList.txt" dir /b "%%a" 

Senden Sie für jedes Verzeichnis rekursiv aus dem aktuellen aktiven Verzeichnis das Ergebnis des bloßen dirBefehls an die angegebene Datei innerhalb des verarbeiteten Verzeichnisses.