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

Printed on: April 23, 2024 at 08:04 o'clock

Member: miniversum
miniversum May 04, 2008 at 10:07:41 (UTC)
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.
Member: bastla
bastla May 04, 2008 at 10:25:31 (UTC)
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
Member: miniversum
miniversum May 04, 2008 at 10:57:59 (UTC)
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...
Member: tkline
tkline May 05, 2008 at 10:56:41 (UTC)
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
Member: Biber
Biber May 05, 2008 at 10:59:52 (UTC)
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
Member: bastla
bastla May 05, 2008 at 11:05:21 (UTC)
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
Member: tkline
tkline May 05, 2008 at 17:07:29 (UTC)
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