Mit Dir Befehl einmal nur Dateien im Ordner ausgeben und einmal nur die Ordnerinhalte

Mitglied: Dell-XPS

Dell-XPS (Level 1) - Jetzt verbinden

13.10.2011 um 11:28 Uhr, 19726 Aufrufe, 30 Kommentare

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
30 Antworten
Mitglied: Connor1980
13.10.2011 um 11:50 Uhr
Hi,

hast du dir mir dir /? die Optionen mal angeschaut?

Grüße
Bitte warten ..
Mitglied: Jochem
13.10.2011 um 11:51 Uhr
Moin,

(1)
listet alle Verzeichnisse in einem Verzeichnis auf

und

(2)
listet alle Nicht-Verzeichnisse (also Dateien) in einem Verzeichnis auf.

Das Ergebnsi von (1) in eine Datei geschrieben, welche als Eingabe für (2) genutzt wird, sollte Deine Frage beantworten.

Gruß J :-) face-smile chem
Bitte warten ..
Mitglied: Dell-XPS
13.10.2011 um 11:53 Uhr
Hey Connor1980,

ja hab ich. Du meinst warscheinlich ich soll: Dir /A-D nehmen um keine Verzeichnisse anzuzeigen oder?
Hab ich schon probiert, da gibt er mir immer noch die Ordner Inhalte aus.
Gruß XPS
Bitte warten ..
Mitglied: Dell-XPS
13.10.2011 um 11:57 Uhr
hey Jochem,

wenn ich nur
eingebe, gibt er mir garnichts aus, sondern überspringt den dir Befehl nur.

Gruß XPS
Bitte warten ..
Mitglied: 60730
60730 (Level 5)
13.10.2011 um 12:04 Uhr
moinsen,

ist ja komisch ..

glaub ich dir irgendwie nicht - oder benutzt du dos 2.01?
Bitte warten ..
Mitglied: Connor1980
13.10.2011 um 12:05 Uhr
Hi,

Was heißt "überspringt"? Wird der Befehl ausgeführt oder nicht? Was ist die Rückmeldung? Oder ist der Ordner leer?
Nur Verzeichnisse aller Unterordner: dir /a:d /s
alle nicht-Verzeichnisses das aktuellen Ordners: dir /a:-d

Grüße
Bitte warten ..
Mitglied: Jochem
13.10.2011 um 12:07 Uhr
Moin,

dann poste mal das Script hier.

Habs gerade auf XP SP3 getestet, funktioniert.

dirdat.cmd
dirdat2a.txt
dirdat2b.txt
Gruß J :-) face-smile 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.
Bitte warten ..
Mitglied: Skyemugen
13.10.2011 um 12:14 Uhr
Aloha,

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?
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 ;-) face-wink
Bitte warten ..
Mitglied: Dell-XPS
13.10.2011 um 13:45 Uhr
hey
ich glaub eure fragen klären sich, wenn ihr mein komplettes programm seht:
Gruß XPS
Bitte warten ..
Mitglied: Skyemugen
13.10.2011 um 13:55 Uhr
...

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é
Bitte warten ..
Mitglied: Dell-XPS
13.10.2011 um 14:02 Uhr
ach mist, das mit %%s und %%S is nen Tipfehler gewesen. funktioniert aba trotzdem nicht.

also hab mir alles duchgelesen, und geht nicht.

Wie is es denn mit meinem Vorschlag? geht das so wie ich das vorgeschlagen hab? also mit der Variablen?

Gruß XPS
Bitte warten ..
Mitglied: 60730
60730 (Level 5)
13.10.2011 um 14:37 Uhr
@echo off
alleine reicht ja noch nicht....
SET PATH=
Muß auch noch rein....
Nööö mensch, also würglich....
SET /p ORDNER=
WTF?
Bitte warten ..
Mitglied: Dell-XPS
13.10.2011 um 14:42 Uhr
was kommt den zu @echo off noch dazu?

und schau dir doch mal bitte Zeite 5 vom Code an. Da steht ja: SET PATH=D:USER\EigeneDokumente\2011

Gruß XPS
Bitte warten ..
Mitglied: Dell-XPS
13.10.2011 um 14:45 Uhr
SET /p ORDNER=
wollte ich mal noch hinzufügen, dass man nen ordnername eingaben kann. hier hab ich ihn verrübergehen automatisch hinzugefügt (2011)

Gruß XPS
Bitte warten ..
Mitglied: 60730
60730 (Level 5)
13.10.2011 um 14:49 Uhr
Zitat von @Dell-XPS:
was kommt den zu @echo off noch dazu?
liess mal mein Hauzu zum Thema..
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 Ärscheindiziert stürzen
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?
Bitte warten ..
Mitglied: pieh-ejdsch
13.10.2011 um 14:50 Uhr
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
@echo on
und führe diese Batch in einem CMD-Fenster aus.

Fällt Dir dann etwas an dem Pfad auf?

Gruß Phil
Bitte warten ..
Mitglied: Dell-XPS
13.10.2011 um 15:09 Uhr
wie meinst du das jetzt Phil?
is es besser wenn ich den Dateipfad reinschreibe anstatt %PATH%?
gruß xps
Bitte warten ..
Mitglied: pieh-ejdsch
13.10.2011 um 15:28 Uhr
öffne die CMD

Benutze eine andere Variable für die eine Datei anstatt Path

einen Überblick über Systemvariablen bekommst Du mit
Gruß Phil
Bitte warten ..
Mitglied: Dell-XPS
13.10.2011 um 15:29 Uhr
im moment bin ich soweit, dass er mir was ausgibt, jedoch alle dateien mit den unterordnern
Dazu muss ich folgendes verwenden:
for /f "delims=" %%s in ('dir /b /s /a-d "%PATH%"') do call :Auflistung "%%s"
liegt wo an dem /s. In der CMD heißts ja bei /c Listet Dateien und alle Unterverzeichnisse auf.
Gibts den gleich befehl nicht, ohne die Unterverzeichnisse?

Gruß XPS
Bitte warten ..
Mitglied: 60730
60730 (Level 5)
13.10.2011 um 15:29 Uhr
Zitat von @Dell-XPS:
wie meinst du das jetzt 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%?
Gibts den gleich befehl nicht, ohne die Unterverzeichnisse?

ok, dann halt

  • for /?
  • set /?
UND
  • DIR /?
Bitte warten ..
Mitglied: Dell-XPS
13.10.2011 um 15:37 Uhr
ok. habs mit ner anderen Variablen versucht. Ging trotzdem nicht.
habs mit AUSGABE probiert.
Gruß XPS
Bitte warten ..
Mitglied: Dell-XPS
13.10.2011 um 16:01 Uhr
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
jedoch ohne erfolg

gruß xps
Bitte warten ..
Mitglied: 60730
60730 (Level 5)
13.10.2011 um 16:05 Uhr
@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?
Mit Dir Befehl einmal nur Dateien im Ordner ausgeben und einmal nur die Ordnerinhalte
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.

In der CMD heißts ja bei /c Listet Dateien und alle Unterverzeichnisse auf.

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.
Bitte warten ..
Mitglied: 60730
60730 (Level 5)
13.10.2011 um 16:12 Uhr
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

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.
Bitte warten ..
Mitglied: Biber
15.10.2011 um 15:10 Uhr
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
Bitte warten ..
Mitglied: Dell-XPS
17.10.2011 um 11:25 Uhr
hey biber,
also im moment bin ich soweit, dass meine Ausgabe, wenn ich es in der CMD ausprobiere ohne weitere funktioniert.

Mein Code sieht so aus (für die Batch):

Das mit der Varialben PATH hab ich inzwischen nachgelesen.

Nun noch mal zum Verständnis, was ich genau haben will:
Also, ich habe einen Ordner (Pfad: D:USER\EigeneDokumente\2011), in diesem befinden sich einige Dateien und einige Ordner. Nun würde ich gern die Datei-Namen in eine .txt-Datei ausgeben (Pfad: D:USER\Ausgaben\test.txt). Oben wäre das die test.txt-Datei. Bisher habe ich versucht durch den Dir-Befehl, mit /a-d die Verzeichnisse nicht auszugeben. Jedoch nur mit Erfolg wenn ich es direkt in der CMD versuchte.

Ich hoffe ich habe es diesmal besser beschrieben... hab mir viel mühe gegeben.
Gruß XPS
Bitte warten ..
Mitglied: pieh-ejdsch
17.10.2011 um 11:49 Uhr
moin XPS,

Zitat von @pieh-ejdsch:
Fällt Dir dann etwas an dem Pfad auf?

SET ORDNER=D:USER\EigeneDokumente\2011
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
Bitte warten ..
Mitglied: 60730
60730 (Level 5)
17.10.2011 um 12:33 Uhr
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
for /f "delims=" %a in ('dir /b /A-D "%ORDNER%\"') do echo %~nxa
@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ß
Bitte warten ..
Mitglied: Dell-XPS
18.10.2011 um 11:28 Uhr
hey leute,
also ich habs jetzt geschafft! (hab jetzt aber gerade gesehen, dass meine Lösung die ich rausgefunden hab genau die Lösung is die mir TimoBeil geschickt hat. :-) face-smile Danke trotzdem)


also so:
Bin nun fast fertig mit der Batch.
Eine frage hätte ich jedoch noch:
Ich habe folgende Variable: VERSION
Diese enhält: ABC7.70
Nun würde ich gern automatisch immer die Ziffen in eine andere Variable speichern (oder mehrere, je nachdem wie es einfacher ist) um folgende Ausgabe zu erzeugen:
7.7.0.
ist so etwas möglich?
Ich schätze mal das geht mit: for /f "tokens= delims= " ...
nur wie genau das weiß ich nicht. Kann mir da jemand weiter helfen?

Gruß XPS
PS: und danke nochmal an TimoBeil
Bitte warten ..
Mitglied: 60730
60730 (Level 5)
18.10.2011 um 16:46 Uhr
moin,

Ich habe folgende Variable: VERSION
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
Bitte warten ..
Heiß diskutierte Inhalte
MikroTik RouterOS
Simples VLAN bringt mich zur Verzweiflung
gelöst Daniel26Vor 1 TagFrageMikroTik RouterOS30 Kommentare

Moin, ich bin sehr neu im Mikrotik-Bereich, aber schon dabei, aufzuegeben. Wir verbauen in unserer Hardware Switche von Mikrotik. Bisher waren da Netgear-Teile drin, ...

Microsoft
STRG + ALT + ENTF
TezzlaVor 1 TagAllgemeinMicrosoft12 Kommentare

Mahlzeit zusammen, wir haben gerade im Kollegenkreis über Sinn und Unsinn der Sperrbildschirmentriegelung STRG + ALT + ENTF unter Win10 diskutiert. Mich würde hierzu ...

Video & Streaming
Streamingplattform mit eigenen Servern
gelöst icegetVor 1 TagFrageVideo & Streaming6 Kommentare

Hallo liebe Community, ich würde gerne via Amazaon AWS (oder andere Cloudanbietern) mehrere Serverinstanzen (Streaming) starten, um z.B. 2000 Personen den selben Stream den ...

Windows Server
Nutzer als lokaler Admin in Windows Server 2019
hanheikVor 1 TagFrageWindows Server6 Kommentare

Hallo, in SBS 2011 konnte ich ganz einfach einen Nutzer als lokalen Admin einstellen. Windows fragte dann, für welchen Rechner; Rechner auswählen; fertig! In ...

Hardware
Outdoor LAN sichern mit oder ohne Fritzbox Verständnis Frage
bluescreenVor 1 TagFrageHardware12 Kommentare

Hallo zusammen, ich habe die letzten Stunden schon viel hier gelesen, stehe aber ein wenig auf dem Schlauch, wie und wo ich weiter suchen ...

Switche und Hubs
Zwei Lancom GS-315XP Switche VLAN verbinden
wieoderwasVor 1 TagFrageSwitche und Hubs14 Kommentare

Hallo zusammen, wir haben zwei neue Lancom GS-315XP Switche bekommen. An einem dieser Switche sind Lancom Accesspoints angeschlossen. Ich verzweifel gerade an der Verbindung ...

Windows Netzwerk
Telefone im Netzwerk bekannt machen
jannik0205Vor 10 StundenFrageWindows Netzwerk13 Kommentare

Hallo Zusammen, In unserem Unternehmen gibt es eine Telefonanlage mit eigenem Telefonienetz (192.168.5.X). Schließe ich ein Telefon an eine Netzwerkdose, bekommt es vom DHCP- ...

Datenschutz
Übergang von "Sorgfaltspflicht" im Datenschutz
ukulele-7Vor 1 TagFrageDatenschutz7 Kommentare

Hallo zusammen, mir ist eine, zugegeben eher juristische, Frage in den Sinn gekommen. In unserer Branche arbeiten wir mit sensiblen, personenbezogenen Daten die natürlich ...