Mit Dir Befehl einmal nur Dateien im Ordner ausgeben und einmal nur die Ordnerinhalte
Hey leute,
ich weiß der Titel hört sich etwas komisch an. Jedoch würde ich gerne von einem Pfad (z.b. D:USER\EigeneDokumente\2011) einmal nur die Dateien ausgeben und einmal nur die Unterordnerinhalte, mit einer Batch Datei.
D.H
In dem Ordner 2011 befinden sich Dateien z.b. Dokumente, Bilder etc und einige Ordner z.b. Projekte, Produkte und einen .svn Ordner.
Nun würde ich gern mit dem Dir befehl einmal nur die Dateien ausgeben und einmal nur die Unterordner.
Wie mach ich das am Besten?
Indem ich eine Variable (z.b. NICHT_AUSGEBEN) erstelle, die alle Ordnernamen enthält. Mit dieser Variable nutze ich dann findstr /v "%NICHT_AUSGEBEN%".
Geht das? Wenn ja wie trage ich das in die Variable ein? Oder gibts da eine einfache Lösung?
Gruß XPS
PS: Ich hoffe ihr versteht mein anliegen
ich weiß der Titel hört sich etwas komisch an. Jedoch würde ich gerne von einem Pfad (z.b. D:USER\EigeneDokumente\2011) einmal nur die Dateien ausgeben und einmal nur die Unterordnerinhalte, mit einer Batch Datei.
D.H
In dem Ordner 2011 befinden sich Dateien z.b. Dokumente, Bilder etc und einige Ordner z.b. Projekte, Produkte und einen .svn Ordner.
Nun würde ich gern mit dem Dir befehl einmal nur die Dateien ausgeben und einmal nur die Unterordner.
Wie mach ich das am Besten?
Indem ich eine Variable (z.b. NICHT_AUSGEBEN) erstelle, die alle Ordnernamen enthält. Mit dieser Variable nutze ich dann findstr /v "%NICHT_AUSGEBEN%".
Geht das? Wenn ja wie trage ich das in die Variable ein? Oder gibts da eine einfache Lösung?
Gruß XPS
PS: Ich hoffe ihr versteht mein anliegen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 174622
Url: https://administrator.de/forum/mit-dir-befehl-einmal-nur-dateien-im-ordner-ausgeben-und-einmal-nur-die-ordnerinhalte-174622.html
Ausgedruckt am: 11.03.2025 um 19:03 Uhr
30 Kommentare
Neuester Kommentar

moinsen,
ist ja komisch ..
glaub ich dir irgendwie nicht - oder benutzt du dos 2.01?
ist ja komisch ..
glaub ich dir irgendwie nicht - oder benutzt du dos 2.01?
Moin,
dann poste mal das Script hier.
Habs gerade auf XP SP3 getestet, funktioniert.
dirdat.cmd
dirdat2a.txt
dirdat2b.txt
Gruß J
chem
PS. Bei dem obigen Beispiel steht im DOS-Fenster dann nur zweimal "Drücken Sie eine beleibige Taste ..." . Insoweit wird der Befehl "übersprungen", wenn man "keine Anzeige von Aktionen" als "überspringen" definiert.
dann poste mal das Script hier.
Habs gerade auf XP SP3 getestet, funktioniert.
dirdat.cmd
@Echo off
cls
dir c:\test2 /ad > dirdat2a.txt
pause
dir c:\test2 /a-d > dirdat2b.txt
pause
dirdat2a.txt
Volume in Laufwerk C: hat keine Bezeichnung.
Volumeseriennummer: XXXX-YYYY
Verzeichnis von c:\test2
13.10.2011 12:01 <DIR> .
13.10.2011 12:01 <DIR> ..
24.02.2010 10:53 <DIR> Access-Schulung
24.11.2010 10:21 <DIR> Volumes
0 Datei(en) 0 Bytes
4 Verzeichnis(se), 2.915.893.248 Bytes frei
dirdat2b.txt
Volume in Laufwerk C: hat keine Bezeichnung.
Volumeseriennummer: XXXX-YYYY
Verzeichnis von c:\test2
13.10.2011 12:01 97 dirdat.cmd
13.10.2011 12:03 394 dirdat2a.txt
13.10.2011 12:03 0 dirdat2b.txt
3 Datei(en) 491 Bytes
0 Verzeichnis(se), 2.915.893.248 Bytes frei
Gruß J
PS. Bei dem obigen Beispiel steht im DOS-Fenster dann nur zweimal "Drücken Sie eine beleibige Taste ..." . Insoweit wird der Befehl "übersprungen", wenn man "keine Anzeige von Aktionen" als "überspringen" definiert.
Aloha,
also irgendwie ...
Was genau verstehst du unter ausgeben, wie sieht die Endverarbeitung der Daten aus?
greetz André
@Jochem

also irgendwie ...
Jedoch würde ich gerne von einem Pfad (z.b. D:USER\EigeneDokumente\2011) einmal nur die Dateien ausgeben und einmal nur die Unterordnerinhalte = Dateien?, mit einer Batch Datei.
also dir /a-d
und dir /a-d /s
(und eventuell bei beiden noch /b
?)Nun würde ich gern mit dem Dir befehl einmal nur die Dateien ausgeben und einmal nur die Unterordner.
hier dann entweder wie oben oder dir /ad /s
(auch wieder mit /b
?)Indem ich eine Variable (z.b. NICHT_AUSGEBEN) erstelle, die alle Ordnernamen enthält. Mit dieser Variable nutze ich dann findstr /v "%NICHT_AUSGEBEN%".
Geht das? Wenn ja wie trage ich das in die Variable ein? Oder gibts da eine einfache Lösung?
Geht das? Wenn ja wie trage ich das in die Variable ein? Oder gibts da eine einfache Lösung?
set "var=Inhalt"
? findstr /v "%var%"
?Was genau verstehst du unter ausgeben, wie sieht die Endverarbeitung der Daten aus?
greetz André
@Jochem
"Drücken Sie eine beleibige Taste ..."
*sabber* beleibig, da ist bestimmt viel dran, gut, dass es gleich Mittag gibt
...
... nö?
Aber ich kann dir mal als Korrektur in Zeile 8 vorschlagen, die Variable korrekt zu schreiben, denn
Egal, momentan bin ich vollgefressen und glaube eh, dass die Lösung wieder einmal bereits im Forum existiert und in der cmd-Hilfe und den Vorkommentaren ...
greetz André
ich glaub eure fragen klären sich
... nö?
Aber ich kann dir mal als Korrektur in Zeile 8 vorschlagen, die Variable korrekt zu schreiben, denn
%%S
und %%s
sind zwei verschiedene Paar Schuhe ...Egal, momentan bin ich vollgefressen und glaube eh, dass die Lösung wieder einmal bereits im Forum existiert und in der cmd-Hilfe und den Vorkommentaren ...
greetz André

@echo off
alleine reicht ja noch nicht....
Nööö mensch, also würglich....
alleine reicht ja noch nicht....
SET PATH=
Muß auch noch rein....Nööö mensch, also würglich....
SET /p ORDNER=
WTF?
liess mal mein Hauzu zum Thema..
Kennst du die Variablen?
Und wenn ja, warum nimmst du dann eine Betriebsystemeigene für diese zusammengefundene exBastla Version?
was sagte mein alter Meister so gerne - was Hände bauen, könnenÄrscheindiziert stürzen
Und das allein ist immer noch nicht so fies, du benutzt x Variablen und welche werden dann tasächlich beackert?
Du machst es einem würglich schwer und nix komma garnix schreibst du über den Sinn von Tokens 5, das macht doch wirklich keinen Spass....
Du stiftest uns damit an, das nachzubauen, was wir vermuten (sinds denn wirklich immer 5 \) - warum nutzt du nicht mal set /? For /? und siehst dir dpa; dpnxa usw an?
und schau dir doch mal bitte Zeite 5 vom Code an. Da steht ja: SET PATH=D:USER\EigeneDokumente\2011
Kennst du die Variablen?
Und wenn ja, warum nimmst du dann eine Betriebsystemeigene für diese zusammengefundene exBastla Version?
was sagte mein alter Meister so gerne - was Hände bauen, können
Und das allein ist immer noch nicht so fies, du benutzt x Variablen und welche werden dann tasächlich beackert?
Gruß XPS
Du machst es einem würglich schwer und nix komma garnix schreibst du über den Sinn von Tokens 5, das macht doch wirklich keinen Spass....
Du stiftest uns damit an, das nachzubauen, was wir vermuten (sinds denn wirklich immer 5 \) - warum nutzt du nicht mal set /? For /? und siehst dir dpa; dpnxa usw an?
moin XPS,
Die Variable Path ist wofür gedacht? ...
Ah ja um die Richtigen Pfade für ausführbare Programme zu Horten.
wäre kontraproduktiv dann ein Find oder Findstr oder andere NichtCMD-Befehle auszuführen.
Für eine Bugbehaftete Batch empfiehlt Timo immer
Fällt Dir dann etwas an dem Pfad auf?
Gruß Phil
Die Variable Path ist wofür gedacht? ...
Ah ja um die Richtigen Pfade für ausführbare Programme zu Horten.
wäre kontraproduktiv dann ein Find oder Findstr oder andere NichtCMD-Befehle auszuführen.
Für eine Bugbehaftete Batch empfiehlt Timo immer
@echo on
und führe diese Batch in einem CMD-Fenster aus.Fällt Dir dann etwas an dem Pfad auf?
Gruß Phil

ich bin zwar nicht der Philosophische, aber fällt dir was auf - 3* der gleiche Zaunpfahl gefällt, bald wirst du gepfahlt.
is es besser wenn ich den Dateipfad reinschreibe anstatt %PATH%?
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
N:\>set p
Path=C:\Programme\Windows Resource Kits\Tools\;C:\Programme\CA\SC\CAWIN\;C:\WIND
OWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 6 Model 15 Stepping 7, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=0f07
ProgramFiles=C:\Programme
PROMPT=$P$G
Gibts den gleich befehl nicht, ohne die Unterverzeichnisse?
ok, dann halt
- for /?
- set /?
- DIR /?

@dellxps.....
Erinner mich bitte daran, dss ich beim nächsten mal den Maulkorb anziehe und mich brav vor die Türe stelle...
Keiner weiß, was du eigentlich willst - entweder sind wir alle plemplem, oder der hase liegt woanders begraben.
Du willst was machen?
Das ganz sicher nicht.
Entweder du schreibst jetzt und bitte dann in Zukunft mal ganz sachlich, durchdacht mit max. 2 Tippfehlern was dein Ziel ist, oder mein Ziel wird sein - dich komplett zu ignorieren.
Setz dich bloss niemals mit Viper5000 zusammen und macht ihr beiden bloss niemals nie zusammen eine Firma auf.
Ihr beiden passt wie die Faust aufs Auge zusammen. Und wenn ja nennt die Firma Merkbefreit & Lernresistent.
Erinner mich bitte daran, dss ich beim nächsten mal den Maulkorb anziehe und mich brav vor die Türe stelle...
Keiner weiß, was du eigentlich willst - entweder sind wir alle plemplem, oder der hase liegt woanders begraben.
Du willst was machen?
Mit Dir Befehl einmal nur Dateien im Ordner ausgeben und einmal nur die Ordnerinhalte
Entweder du schreibst jetzt und bitte dann in Zukunft mal ganz sachlich, durchdacht mit max. 2 Tippfehlern was dein Ziel ist, oder mein Ziel wird sein - dich komplett zu ignorieren.
In der CMD heißts ja bei /c Listet Dateien und alle Unterverzeichnisse auf.
/C Zeigt das Tausendertrennzeichen bei Dateigrößen an (Standard-
einstellung). Verwenden Sie /-C, um das Tausendertrennzeichen
nicht anzuzeigen.
Setz dich bloss niemals mit Viper5000 zusammen und macht ihr beiden bloss niemals nie zusammen eine Firma auf.
Ihr beiden passt wie die Faust aufs Auge zusammen. Und wenn ja nennt die Firma Merkbefreit & Lernresistent.

Zitat von @Dell-XPS:
wie gleichen Zaunpfahl gefällt, bald wirst du gepfahlt.?
was soll das sein?
ja ich probier ja die ganze zeit rum, mit for set und dir
wie gleichen Zaunpfahl gefällt, bald wirst du gepfahlt.?
was soll das sein?
ja ich probier ja die ganze zeit rum, mit for set und dir
Zusätzlich wurde die Ersetzung von Verweisen auf FOR-Variablen erweitert.
Sie können jetzt folgende Syntax verwenden:
%~I - Expandiert %I und entfernt alle umschließenden
Anführungszeichen (").
%~fI - Expandiert %I zu einem vollständigen Dateinamen.
%~dI - Erzeugt nur den Laufwerkbuchstaben von %I.
%~pI - Erzeugt nur den Pfad von %I.
%~nI - Erzeugt nur den Dateinamen von %I.
%~xI - Erzeugt nur die Dateierweiterung von %I.
%~sI - Erzeugter Pfad enthält nur kurze Dateinamen.
%~aI - Erzeugt die Dateiattribute von %I.
%~tI - Erzeugt Datum und Zeit von %I.
%~zI - Erzeugt die Dateigröße von %I.
%~$PATH:I - Durchsucht die in der PATH-Umgebungsvariablen
angegebenen Verzeichnisse und expandiert die erste
gefundene Datei %I zu dem vollständigen Dateinamen.
Drücken Sie eine beliebige Taste . . .
jedoch ohne erfolg
Probiers bitte im stillen Kämmerlein
gruß xps
Adieu, du schaffst mich und wir beide schauen uns mal die Seite genau an. Vielleicht fällt dann der Groschen.
Moin Dell-XPS,
ich möchte doch noch mal nachfragen, wie denn nun genau der Status dieses Beitrags nach den ertsen 24 Kommentaren nun ist.
Ein Haken ist ja nun noch nicht dran - was darauf schliessen lässt, dass vermutlich dein Schnipsel immer noch nicht funktioniert.
Kannst du bitte noch mal den jetzt aktuellen Entwurfsstand posten mit der Erläuterung, was er denn noch nicht richtig macht?
Grüße
Biber
ich möchte doch noch mal nachfragen, wie denn nun genau der Status dieses Beitrags nach den ertsen 24 Kommentaren nun ist.
Ein Haken ist ja nun noch nicht dran - was darauf schliessen lässt, dass vermutlich dein Schnipsel immer noch nicht funktioniert.
Kannst du bitte noch mal den jetzt aktuellen Entwurfsstand posten mit der Erläuterung, was er denn noch nicht richtig macht?
Grüße
Biber
moin XPS,
Deine Unteroutine kannnst Du getrost in Zeile 07 eindampfen
Zeile 09 sollte mit einem "goto :eof" abschliessen.
das "Problem" ist %%s:
das Fünfte Token wird ausgegeben.
Du solltest Die Anweisung der Forschleife (DIR ...) nochmal im Prompt ausgeben lassen und die Backslashes in den AuzsgabeZeilen Zählen.
bei mindestens vier sollte es funktionieren.
Gruß Phil
SET ORDNER=D:USER\EigeneDokumente\2011
SET Ordner=D:\User\EigeneDokumente\2011
for /f "tokens=5 delims=\" %%s in ('dir /b /s /A-D "%ORDNER%"') do >>"%Ausgabe_Datei%" echo %%s
Zeile 09 sollte mit einem "goto :eof" abschliessen.
das "Problem" ist %%s:
das Fünfte Token wird ausgegeben.
Du solltest Die Anweisung der Forschleife (DIR ...) nochmal im Prompt ausgeben lassen und die Backslashes in den AuzsgabeZeilen Zählen.
bei mindestens vier sollte es funktionieren.
Gruß Phil

Servus Phil,
irgendwie @echo off ...
Dieses Konstrukt mit seinen 5 Tokens hab ich ihn doch schon vor xx Tagen .... der 13. war übrigens kein Freitag
@notebookbesitzer:
Als ob es hier nicht genügend Tipps zu deinem "Problem", Grundsätzliche Anleitungen zum Thema und als ob das dein erster Versuch ist, uns den nach dem Weg zum Bahn
hof zu fragen wäre....
Gruß
irgendwie @echo off ...
Dieses Konstrukt mit seinen 5 Tokens hab ich ihn doch schon vor xx Tagen .... der 13. war übrigens kein Freitag
for /f "delims=" %a in ('dir /b /A-D "%ORDNER%\"') do echo %~nxa
Als ob es hier nicht genügend Tipps zu deinem "Problem", Grundsätzliche Anleitungen zum Thema und als ob das dein erster Versuch ist, uns den nach dem Weg zum Bahn
hof zu fragen wäre....
Gruß

moin,
ja - aber diese Baustelle bekommt bitte vorher einen klimakteriumgrünen Haken
Eine potentielle Gegenfrage wäre zum Bleistift, ist die Variable immer gleichlang oder ist ABC ein fester Wert.
Hier ist dann Ferma la porte oder rien ne va plus.
Danke
Ich habe folgende Variable: VERSION
Diese enhält: ABC7.70
ist so etwas möglich?
Diese enhält: ABC7.70
ist so etwas möglich?
ja - aber diese Baustelle bekommt bitte vorher einen klimakteriumgrünen Haken
- du stellst für diese Frage eine eigenen fred
- und damit das nicht wieder so ausartet, überleg dir genau, was du willst.
Eine potentielle Gegenfrage wäre zum Bleistift, ist die Variable immer gleichlang oder ist ABC ein fester Wert.
Hier ist dann Ferma la porte oder rien ne va plus.
Danke