hausens
Goto Top

Dir Optionen reichen nicht

Guten Morgen,

Da ich mit batch noch nicht sonderlich vertraut bin stoße ich des öffteren an meine Grenzen und muss mir Hilfe suchen, so wie hier.

Ich möchte gerne alle Dateien in den Ordnern und deren Unterordnern ausgeben und in ein .txt File schreiben.
Das ist kein Problem:

dir C:\ /b /s > File.txt

Nun gibt mir dieser Befehl auch denn gesammten Pfad zur Datei an, nur will ich das nicht.
C:\Windows\assembly\etc\etc\etc

Gibt es eine Möglichkeit nur die Dateinamen auszugeben und nicht den dazugehörigen Pfad?

Bitte um Andwort.


Freundliche Grüße

Hausens

Content-ID: 205840

Url: https://administrator.de/forum/dir-optionen-reichen-nicht-205840.html

Ausgedruckt am: 22.12.2024 um 19:12 Uhr

Endoro
Endoro 30.04.2013 um 08:11:35 Uhr
Goto Top
Hallo Hausens,

das geht mit einer Forschleife:
@echo off & setlocal
set "startfolder=."  
(for /r "%startfolder%" %%i in (*) do echo %%~nxi)>file.txt  

Gruss!
andimue
andimue 30.04.2013 um 08:32:46 Uhr
Goto Top
Hi Endoro,

event. würde noch ein @ for dem echo Sinn machen, also so:
@echo off & setlocal
set "startfolder=."  
(for /r "%startfolder%" %%i in (*) do @echo %%~nxi)>file.txt  

Ohne den @ hab ich (zumindest hier auf einem XP-CLient) sieht meine Ausgabe so aus:

H:\>echo AUTOEXEC.BAT 
AUTOEXEC.BAT

H:\>echo CONFIG.SYS 
CONFIG.SYS

und mit @ sieht es so aus:

AUTOEXEC.BAT
CONFIG.SYS

Gruß
Andi
Endoro
Endoro 30.04.2013 um 09:00:31 Uhr
Goto Top
Hallo andimue,
das kann ich nicht bestätigen. Das passiert nur, wenn "@echo off" gelöscht wird (also bei "echo on").

Gruss!
andimue
andimue 30.04.2013 aktualisiert um 14:46:59 Uhr
Goto Top
Hi Endoro,

du hast Recht.
Ich hab den Fehler gemacht, deinen for-Befehl (und nur den!) interaktiv (also nicht innerhalb einer Prozedur auszuführen).
Dort hatte ich das Verhalten, wie ich es beschrieben habe. Innerhalb einer Prozedur funktioniert es wie von dir beschrieben.

Sorry für die gestiftete Verwirrung

Gruß Andi