2016-03-24 7 views
3

Durch die Verwendung von:Get folder ohne Pfad mit dir in cmd

dir /s /b /o:n /a:d > foldername.txt 

ich folgende Ausgabe:

D:\Project\Java\MyName 
D:\Project\Java\Object 

Aber ich möchte die Ausgabe wie folgt aussehen:

MyName 
Object 

Die Ausgabe muss Ordnernamen ohne ihre Pfade sein?

+1

Mögliche Duplikat [Wie teilt man den Dateinamen im Batch von einem vollständigen Pfad?] (Http://stackoverflow.com/questions/9252980/how-to-split-the-filename-from-a-full-path-in-ba tch) –

+0

Ihre gewünschte Ausgabe kann nicht erreicht werden, indem nur "dir" verwendet wird. –

+0

Was tun, um das gewünschte Ergebnis zu erhalten? – paulcab

Antwort

3

Die FOR Schleife hat variable Modifikatoren, so dass nur der Dateiname und die Erweiterung angezeigt werden können. Beachten Sie, dass ein Verzeichnis eine Erweiterung haben kann. Verwenden Sie FOR /? für Informationen über die Variableneinstellungen.

FOR /F "usebackq tokens=*" %d IN (`DIR /S /B /A:D /O:N`) DO (ECHO "%~nxd") 

Oder ohne die Namen in eine Datei zu setzen zitiert:

DEL foldername.txt 
FOR /F "usebackq tokens=*" %d IN (`DIR /S /B /A:D /O:N`) DO (ECHO>>foldername.txt %~nxd) 
+0

Danke, der zweite Code funktioniert gut – paulcab

0

verwenden nur

DIR D:\Project\Java\ /b 

das Ergebnis wird sein, wie, was Sie wollen

+0

Das wird die Verzeichnisse in 'D: \ Project \ Java' korrekt auflisten, aber das OP sucht auch nach Unterverzeichnissen (d. H. Der'/s' Schalter). – YowE3K