tkline
Goto Top

Ordner auslesen ohne Subdirectories

Hi Leute,


Hab folgendes Problem:


Ich möchte eine Auswertung von Textdateien, die sich in bestimmten Ordnern befinden.
Diese Ordner entalten jedoch auch Unterordner, die auch wieder textfiles beinhalten.
Das Skript das ich benötige soll mir allerdings nicht diese Unterordner mit auswerten, sonder nur die
im angegebenen Ordner befindlichen Dateien (siehe Skript).
Wäre nicht schlecht wenn ich bei der Auswertung noch eine Pfadangabe mit ausgeben könnte.

Beispiel vom Ordneraufbau: (Ordnernamen können sich ändern)


Hauptordner\Ordner1
Hauptordner\Ordner2\05
Hauptordner\Ordner2\04
Hauptordner\Ordner3\06
Hauptordner\Ordner4\08
Hauptordner \Ordner4\08\04


Habe bereits folgendes Skript geschrieben:

dir C:\Hauptordner\Ordner1 /W /A:-D /B /-C /O:N  > C:\summary.txt
dir C:\Hauptordner\Ordner2\04 /A:-D /B /-C /O:N /4 >> C:\summary.txt
dir C:\Hauptordner\Ordner3\ /A:-D /B /-C /O:N /4 >> C:\summary.txt
dir C:\Hauptordner\Ordner4\08\ /A:-D /B /-C /O:N /4 >> C:\summary.txt

Ergebnis der Batchabfrage:

Ordner1 Dateien.txt
Ordner2_04 Dateien.txt
Ordner3 Dateien.txt
Ordner8 Dateien.txt


Denke das Ergebnis schaut ganz gut aus oder was meint ihr?
Bräuchte jetzt allerdings noch die Pfadangabe in der Ergebnisdatei.


Danke euch


Tom

Content-Key: 86925

Url: https://administrator.de/contentid/86925

Ausgedruckt am: 19.03.2024 um 02:03 Uhr

Mitglied: miniversum
miniversum 04.05.2008 um 12:07:41 Uhr
Goto Top
Wenn ich dein Vorhaben richtig verstehe würde es so gehen:
FOR /F "delims=" %%i in ('dir C:\Hauptordner\Ordner1 /Aface-big-smile /B /O:N') do echo %%~fi > C:\summary.txt
FOR /F "delims=" %%i in ('dir C:\Hauptordner\Ordner2\04 /Aface-big-smile /B /O:N') do echo %%~fi >> C:\summary.txt
FOR /F "delims=" %%i in ('dir C:\Hauptordner\Ordner3 /Aface-big-smile /B /O:N') do echo %%~fi >> C:\summary.txt
FOR /F "delims=" %%i in ('dir C:\Hauptordner\Ordner4\08\ /Aface-big-smile /B /O:N') do echo %%~fi >> C:\summary.txt

Die Optionen /W /-C machen in Kombination mit /B keinen Sinn und kann man deshalb weglassen.
Mitglied: bastla
bastla 04.05.2008 um 12:25:31 Uhr
Goto Top
@miniversum
Das wird so nicht funktionieren, da ein "dir /b" ohne "/s" nur Dateinamen und Extension, aber keine Pfadangabe liefert - für die Ausgabe mit %%~fi wird als Pfad %cd% verwendet ...

@tkline
Da Du ohnehin die auszugebenden Ordner einmal eingeben musst, könntest Du diese gleich zeilenweise in eine Datei (zB "C:\Ordnerliste.txt") eintragen - der Batch dazu sähe dann etwa so aus:
@echo off & setlocal
if exist C:\summary.txt del C:\summary.txt
for /f "delims=" %%i in (C:\Ordnerliste.txt) do (  
	pushd "%%i"  
	for /f "delims=" %%a in ('dir /b /a-d /on 2^>nul') do echo %%i\%%a >>C:\summary.txt  
	popd
)

Grüße
bastla

P.S: @miniversum: Lustiger Batch ... face-wink
Mitglied: miniversum
miniversum 04.05.2008 um 12:57:59 Uhr
Goto Top
@miniversum
Das wird so nicht funktionieren, da ein
"dir /b" ohne "/s" nur
Dateinamen und Extension, aber keine
Pfadangabe liefert - für die Ausgabe mit
%%~fi wird als Pfad %cd% verwendet ...

Ja sowas kann vorkommen wenn man was ungetestetes postet...

P.S: @miniversum: Lustiger Batch ... face-wink

Ach verdammt... hab mir das Posting hinterher nichtmal mehr angeschaut...
Mitglied: tkline
tkline 05.05.2008 um 12:56:41 Uhr
Goto Top
Danke euch erstmal für eure Lösungvorschläge.

@bastla: Dein Lösungsansatz gefällt mir ganz gut, nur wäre es mir am liebsten, ich
bräuchte nur ein Batchfile. Aber so ist es auch OK

Danke

Tom
Mitglied: Biber
Biber 05.05.2008 um 12:59:52 Uhr
Goto Top
@bastla: Dein Lösungsansatz gefällt mir ganz gut, nur wäre es mir am liebsten, ich
bräuchte nur ein Batchfile. Aber so ist es auch OK

Ich brauch jetzt auch erstmal eine Pause.

Grüße
Biber
Mitglied: bastla
bastla 05.05.2008 um 13:05:21 Uhr
Goto Top
Hallo tkline!

Na wenn Du meinst:
@echo off & setlocal
if exist C:\summary.txt del C:\summary.txt
for %%i in ("C:\Hauptordner\Ordner1" "C:\Hauptordner\Ordner2" "C:\Hauptordner\Ordner3" "C:\Hauptordner\Ordner4\08") do (  
	pushd "%%i"  
	for /f "delims=" %%a in ('dir /b /a-d /on 2^>nul') do echo %%i\%%a >>C:\summary.txt  
	popd
)

Grüße
bastla
Mitglied: tkline
tkline 05.05.2008 um 19:07:29 Uhr
Goto Top
Jap, das isses.

Danke Dir.

Jetzt glaub ich brauchen wir alle ne Pause face-smile
(Konnte es mir jetzt nicht verkneifen - Grüße an Biber.
Dank Biber hab ich meinen etwas schrägen Satzbau auch bemerkt face-smile