danielbodensee
Goto Top

Files scannen auf dem Server

Hallo zusammen,

ich bin mir nicht sicher den richtigen Bereich gewählt zu haben, ich hoffe mal...

Auf Grund einer Anforderung müssen wir eine File-Liste erstellen die den Pfad- und Dateinamen beinhaltet welche einem bestimmten Muster entsprechen. Da dies sehr viele Files sein können, muss ich bereits bei der Suche nach dem Muster selektieren und bei einem Treffer den Pfadnamen, Name der Datei, Datum und Grösse in eine Textdatei (oder SQL-Tabelle) ablegen.

Im Dateinamen ist stehts die Abteilungsnummer sowie ein Datum enthalten wie z.Bsp:
DasIstDerDateiName-Abtl_4711-tt.mm.jjjj.doc

Wie könnte ich das mit VBS oder besser PowerShell lösen? Ich wäre Euch über eine Info und vieleicht ein Beispiel sehr dankbar.


Viele Grüsse aus Stuttgart,
Dani


PS:
Muss rekursiv über alle Verzeichnisse sein

Content-Key: 169201

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

Printed on: April 25, 2024 at 07:04 o'clock

Member: Skyemugen
Skyemugen Jul 06, 2011 at 08:06:43 (UTC)
Goto Top
Aloha,

vbs, powershell? Genügt dir batch nicht?

Anyway mir ist nicht ganz hunderprozentig klar, was du jetzt genau wie selektieren willst, die Erstellung der Liste (btw. als .csv wäre dies gut umsetzbar) ist kein Problem, nur das mit dem Selektieren verstehe ich nicht ganz.

Eventuell kannst du noch ein paar detailierte Rückinfos diesbezüglich geben.

greetz André
Member: DanielBodensee
DanielBodensee Jul 06, 2011 at 08:22:21 (UTC)
Goto Top
Hi Aloha,

da wir sehr viele Ergebnisse erwarten, möchten wir nur die Einträge in die Ergebnis-Datei ablegen (oder SQL-Tabelle) welche dem Muster entsprechen. Das meine ich mit selektieren, ist nicht ganz korrekt benannt face-smile

Gruss,
Dani
Member: Skyemugen
Skyemugen Jul 06, 2011 at 08:47:05 (UTC)
Goto Top
Aloha,

alles klar, dann sollte es so funktionieren:
@echo off & setlocal
set "Pfad=E:\svn"  
set "Datei=E:\svn\Tabelle.csv"  
if exist "%Datei%" del "%Datei%"  

echo Pfad;Dateiname;Datum;Groesse>"%Datei%"  
for /f "delims=" %%s in ('dir /b /s /a-d "%Pfad%\*-????_*-??.??.????.doc"') do (  
	for /f "tokens=1,* delims= " %%m in ("%%~ts") do (  
		echo %%~dps;%%~nxs;%%m;%%~zs>>"%Datei%"  
	)
)
pause
goto :eof

Gut, schätze, die Suchmaske müsste nicht so ganz detailreich sein aber man weiß ja nie face-wink - edit: aufgrund eines bugs findet er dann auch Dateien mit 9.3.11 als Datum im Dateinamen ... hmm ob dich das stört?

greetz André