Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Bergeweise DIRs durchforsten und Dateinamen auswerten, nur wie anfangen

Frage Entwicklung Batch & Shell

Mitglied: H41mSh1C0R

H41mSh1C0R (Level 2) - Jetzt verbinden

21.12.2010, aktualisiert 16:24 Uhr, 2974 Aufrufe, 5 Kommentare

Hi@Batchprofi's

Ich habe Bergeweise Dokumente über die ich eine Auswertung machen soll. Da es täglich mehr werden und es eine sehr verschachtelte Verzeichnisstruktur ist macht das händisch 0 Sinn, es sei denn man will einen Job4Ever .

Dokument_2(273000)_______FB__Seite_1(273001).tif

Von Interesse ist rein in dem Fall FB und die Seite 1.

FB steht für Fragebogen von diesen Dokumentenklassen gibt es ca 75 Stück
und es können auch mehrere Seiten in den ordnern sein.

Für die Zählung ist aber nur Seite 1 von Interesse, weil man so gut die Anzahl zählen kann, alle anderen Seiten mit der gleichen Kennung kann man getrost ignorieren, da man Seite 1 ja bereits gezählt hat.

Wie fängt man nun an:

Ich würde als Suchstring "Seite_1" hernehmen.

Fürs Rekursive gibt es bei for ja den Schalter /r.

Aber da verließen sie mich auch schon. *grübel*

Grüße

EDIT: Grad das Tutorial zu FOR gefunden und geh das grad durch. Wenn ich einen Ansatz habe und fragen habe(werden bestimmt kommen) poste ich hier. Wenn trotzdem einer so eine Idee hat ich bin immer aufgeschlossen. =)
Mitglied: bastla
21.12.2010 um 18:04 Uhr
Hallo H41mSh1C0R!

Da die Beschreibung der gewünschten Auswertung noch relativ nebulos ist, nur einmal ein grundsätzlicher Ansatz für das vorgegebene Dateimuster:
01.
@echo off & setlocal 
02.
set "Basis=D:\Ausgangsordner\" 
03.
set "Maske=*Seite_1(*.tif" 
04.
 
05.
for /f "delims=" %%i in ('dir /s /b "%Basis%%Maske%" 2^>nul') do call :ProcessFile "%%i" 
06.
goto :eof 
07.
 
08.
:ProcessFile 
09.
set  "Klasse=" 
10.
for /f "tokens=4 delims=()_" %%a in ("%~n1") do set "Klasse=%%a" 
11.
set "Klasse=%Klasse:~,-5%" 
12.
if defined Klasse ( 
13.
    echo Gefunden: %Klasse% in %1 
14.
    REM Verarbeitung hier vornehmen 
15.
16.
goto :eof
Zu beachten: Die Angabe des Basisordners (Zeile2) muss mit abschließendem "\" erfolgen.

Grüße
bastla

[Edit] Variable %Teil% auf %Klasse% geändert []/Edit]
Bitte warten ..
Mitglied: Biber
21.12.2010 um 18:10 Uhr
Moin H41mSh1C0R,

es kommt darauf an, was so deine Vorstellungen von einer "Auswertung" sind.

Für schnelle Ad-hoc-Fragen ("Wieviel Fragebögen hab ich denn insgesamt?") würde ich nicht viel Aufwand treiben.

Beispiel: Wenn es nur darum geht, alle Dateien ab einem bestimmten Rootverzeichnis an durchzupflügen und die Gesamtzahl zu ermitteln,
01.
>dir /s "f:\k\*Seite1(*.*"|findstr "Datei(en)" 
02.
              18 Datei(en)     35.241.118 Bytes 
03.
               4 Datei(en)     22.357.372 Bytes 
04.
               5 Datei(en)      2.739.712 Bytes 
05.
              27 Datei(en)     60.338.202 Bytes 
06.
## und da meinetwegen noch irgendeinen Deppen die Anzahl zusammenzählen lassen... 
07.
>set "anzahl="&@(for /f %i in ('dir /s "f:\k\*Seite(*.*"^|findstr "Datei(en)"') do @set /a "anzahl+=%i">nul) & @set anzahl 
08.
anzahl=54
Grüße
Biber
Bitte warten ..
Mitglied: H41mSh1C0R
21.12.2010 um 18:53 Uhr
Hi ihr beiden,

hab vorhin den Bestand mal durchgesehen, sind ca 25000 Dateien, Tendenz steigend.

Und die Verzeichnisstruktur hat 3 Ebenen.

75 Dokumentenklassen

Anhand der "Seite_1" klappt schonmal das "durchzählen" dann sortier(kopier) ich die ermittelten Klassen in unterordner weil die durchgesehen werden sollen, wieso auch immer. Wenn ich an der Stelle erstmal angekommen bin will ich noch die Zeitfenster ermitteln von wann bis wann die einzelnen Dokumente angelegt wurden.

Aber jetzt geht der von illness geplagte H41mSh1C0r in die waagerechte.

Bis morgen und schonmal danke für eure Antworten.

VG
Bitte warten ..
Mitglied: pieh-ejdsch
22.12.2010 um 20:11 Uhr
moin,

06.## und da meinetwegen noch irgendeinen Deppen die Anzahl zusammenzählen lassen...

@Biber
die Ausgabe der Zussammenrechnung ist falsch.
der Befehl Dir /s kann sogar selbst mitzählen und gibt Dir doch die gesamt Anzahl am Ende auch aus.
27 ist ja schon die Fertige Rechnung NICHT 54 das wäre das doppelte

>(for /f %i in ('dir /s "f:\k\*Seite(*.*"^|findstr "Datei(en)"') do @set "anzahl=%i">nul) & @set anzahl 
anzahl=27
Gruß Phil
Bitte warten ..
Mitglied: Biber
22.12.2010 um 21:13 Uhr
Moin pieh-ejdsch,

*lach*... jetzt wo du es sagst...

Du hast vollkommen recht.

Hätte mir auch auffallen können.

Vielen Dank & Gruß
Biber
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

C und C++
Dateien in Ordner kopieren anhand vom Teil eines Dateinamen (22)

Frage von onlyforu8373 zum Thema C und C ...

Batch & Shell
gelöst CSV Dateien auswerten mit Script (8)

Frage von Crank69 zum Thema Batch & Shell ...

Batch & Shell
gelöst PS-Skript anhand Dateinamen und zusätzlich Dateityp (Mapping) verschieben (2)

Frage von cleverm zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (14)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...