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

Batch-Datei um Dateien zu zählen und abzugleichen

Frage Entwicklung IDE & Editoren

Mitglied: Bemme1990

Bemme1990 (Level 1) - Jetzt verbinden

21.11.2011, aktualisiert 22.11.2011, 4552 Aufrufe, 10 Kommentare

Hy Leute,

ich erstelle gerade einen Prozess, womit bestimmte Produkte beschafft werden sollen.

Sofern ein Kundenbetreuer eine Bestellung auslöst, erscheint diese in einem bestimmten Ordner.
Die Bestellungen werden via VBA eingelesen und weiterverarbeitet.

Mein Problem:

Die Bestellungen sind nach Jahren sortiert. Wenn ich meine Ordner auf neue Dateien prüfen möchte, dann muss mal für 5 Jahre durchmachen und das fast stündlich.

Mein Vorschlag:

Eine Batch-Datei, welche alle .xls Dateien in einem bestimmten Ordner zählt.
Wenn Dateien vorhanden, dann bitte den Ordner inkl. Anzahl nennen.

Problem:

Ich weiß nicht, was ich schreiben muss.

Hier mein Daten-Stammbaum:

L:\Vertrieb\Absatz\Bestellungen 2011
...
Bestellungen 2015

In diesen Ordnern gibt es nochmal einen Unterordner "Archiv", welcher nicht mit geprüft werden sollen, da dort die bereits abgearbeiteten Meldungen stehen.

Kann mir jemand helfen?!

vielen Dank
Bemme1990
Mitglied: bastla
21.11.2011 um 18:09 Uhr
Hallo Bemme1990 und willkommen im Forum!

So ganz klar ist mir zunächst die Anforderung nicht (Geht es tatsächlich nur darum, die Anzahl an Excel-Dateien in einem bestimmten Ordner zu ermitteln, oder sollen - vermutlich - doch mehrere Ordner untersucht werden?) und auch nicht, weshalb Batch und nicht VBA dazu verwendet werden soll ...

Außerdem: Sollten neue Dateien nicht am Erstellungs- / Änderungsdatum zu erkennen sein - weshalb dann die Anzahl der "xls"-Dateien?

Und schließlich: Wie soll das Ergebnis konkret aussehen (Textdatei, Excel, Bildschirmausgabe)?

Für letztere würde ein Beispiel zur Direkteingabe in CMD etwa so aussehen:
for /d %i in ("L:\Vertrieb\Absatz\Bestellungen 201*") do @for /f %a in ('dir "%i\*.xls" 2^>nul^|findstrDatei(en)"') do @echo %a Dateien in %i
Grüße
bastla
Bitte warten ..
Mitglied: Bemme1990
21.11.2011 um 18:23 Uhr
Hy Bastla,

ich verwende kein vba, weil es einige Mitarbeiter gibt, welche diese Sachen benutzen.
admit will ich die Probleme mit Schriebschutz etc. umgehen, außerdem möchte ich es einfach mal testen.

Man kann es nicht an dem Erstellungsdatum aus machen.

es ist so, ich habe "Bestellungen 2011", wenn die neue Bestellung via vba eingelesen wurde, dann wird eine Kopie unter "Bestellungen 2011/Archiv" abgespeichert und die Ursprungsdatei gelöscht.
Somit ist dann Bestellungen 2011 wieder leer und "Bestellungen 2011/Archiv" mit 1 Datei gefüllt.

Jetzt sollte er halt nur den Oberordner überprüfen, damit er mir die Archive nicht anzeigt.

Also:
Bestellungen 2011 = 0
Bestellungen 2012 = 0
Bestellungen 2013 = 0
Bestellungen 2014 = 0
Bestellungen 2015 = 0

Zur Ausgabe: Ein Kommandofenster mit diesen Info's wäre toll...
Bitte warten ..
Mitglied: bastla
21.11.2011 um 18:42 Uhr
Hallo Bemme1990!

Als Batch und mit der gewünschten Ausgabeformatierung etwa so:
01.
@echo off & setlocal enabledelayedexpansion 
02.
for /d %%i in ("L:\Vertrieb\Absatz\Bestellungen 201*") do ( 
03.
    set "Anzahl=0" 
04.
    for /f %%a in ('dir "%%i\*.xls" 2^>nul^|findstr "Datei(en)"') do set "Anzahl=%%a" 
05.
    echo %%~nxi = !Anzahl! 
06.
07.
echo( 
08.
pause
In dieser Fassung würden alle "Jahresordner" ab 2010 geprüft - wenn es tatsächlich nur 2011 bis 2015 sein sollen, dann zB
01.
@echo off & setlocal enabledelayedexpansion 
02.
set "Basis=L:\Vertrieb\Absatz" 
03.
 
04.
for /L %%i in (2011,1,2015) do ( 
05.
    set "Ordner=Bestellungen %%i" 
06.
    set "Anzahl=0" 
07.
    for /f %%a in ('dir "%Basis%\!Ordner!\*.xls" 2^>nul^|findstr "Datei(en)"') do set "Anzahl=%%a" 
08.
    echo !Ordner! = !Anzahl! 
09.
10.
echo( 
11.
pause
Grüße
bastla
Bitte warten ..
Mitglied: Bemme1990
21.11.2011 um 20:32 Uhr
Hy Bastla,

du bist heut mein persönlicher Held.

Der erste Code ist super....
Er kann ruhig alle Jahrgänge durchgehen...bislang haben wir bloß bestellungen bis 2015, nächstes jahr aber bis 2016.

Vielen Vielen Dank...
viele grüße

Chris
Bitte warten ..
Mitglied: bastla
21.11.2011 um 20:43 Uhr
Hallo Bemme1990!

Freut mich, wenn's hilft ...

Grüße
bastla
Bitte warten ..
Mitglied: Bemme1990
22.11.2011 um 09:25 Uhr
Ich hätte doch nochmal eine Frage:

Gibt es da bei Netzwerkpfaden besonderheiten?!

Zu Hause hat es unter C:\... super geklappt.
Auf Arbeit klappt es unter C:\... auch super.

Wenn ich aber das Netzlaufwerk L:\ prüfen möchte, zeigt er nichts an, außer "Bitte beliebige Taste drücken"

Weißt du warum?!
Bitte warten ..
Mitglied: bastla
22.11.2011 um 09:31 Uhr
Hallo Bemme1990!

Sollte für ein gemaptes Laufwerk (oder einen UNC-Pfad) genauso funktionieren ...

Du könntest direkt in der CMD-Shell einmal probeweise
dir "L:\Vertrieb\Absatz\Bestellungen 2011\*.xls"
eingeben (vorzugsweise, wenn es auch gerade eine Datei im entsprechenden Ordner gibt) und das Ergebnis interpretieren / posten ...

Grüße
bastla
Bitte warten ..
Mitglied: Bemme1990
22.11.2011 um 09:47 Uhr
Ergebnis:

Datenträger in Laufwerk L:\ ist vdb_gruppe
Volumennummer B40C-D32E

Verzeichnis von ...

22.11.2011 09:42 11.776 Kunde1.xls
...

2 Dateien
0 Verzeichnisse
Bitte warten ..
Mitglied: bastla
22.11.2011 um 10:43 Uhr
Hallo Bemme1990!

Wenn es tatsächlich "2 Dateien" (also ohne Klammern) heißt, müsstest Du natürlich die Zeile 4 (bzw Zeile 7 im zweiten Batch) anpassen ...

Grüße
bastla
Bitte warten ..
Mitglied: Bemme1990
22.11.2011 um 13:58 Uhr
es heißt Datei(en)....daran lag es aber nicht.

Es funktionierte nicht, weil ich ein Umlaut im Pfad hatte

"L:\Vertrieb\Absatzbücher\Bestellungen 2011\*.xls" hab ich jetzt zu Absatzbuch gemacht...

Jetzt geht alles und nochmal vielen Dank

Gruß Chris
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...