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

RECHNUNGS ABFRAGE PER BATCH (ORDNER STRUKTUR)

Frage Entwicklung Batch & Shell

Mitglied: dax4fun

dax4fun (Level 1) - Jetzt verbinden

15.12.2013, aktualisiert 17:22 Uhr, 1391 Aufrufe, 5 Kommentare, 2 Danke

Hi Leute

habe das Problem das Daten zur Abrechung in Ordnern per Datum sortiert sind und sie in Txt Dateien Stehen.

Bsp: Im ORDNER "20131214" befindet sich "555123EOD...20131214.txt" wo drin steht "ID555123 EINGANG:207 AUSGANG:109 ANZAHL:112"

Wie kann ich eine "Batch Abfrage" basteln wo ich angeben kann:

Suche in Ordnern von 20131201 bis 20131231 wo sich eine 555123 txt befindet und rechne die einzelnen Daten aus gefundenen txt´s EINGANG AUSGANG UND ANZAHL ZUSAMMEN

Danke

PS: Während ich die Frage Verfasst habe ist mir ein Licht aufgegangen aber bin mir noch immer unsicher das ich es schaffe

Mitglied: colinardo
15.12.2013, aktualisiert um 18:18 Uhr
Hallo dax4fun,
vielleicht hilft das als Denkanstoss:
01.
@echo off & setlocal ENABLEDELAYEDEXPANSION 
02.
set "searchroot=c:\temp\source" 
03.
 
04.
for /f "delims=" %%a in ('dir /B /S /A-D "%searchroot%\555123*.txt"') DO @( 
05.
	for /f "tokens=3,5,7 delims=: " %%b IN ('findstr /B "ID555123" "%%a"') DO @( 
06.
		set /a eingang +=%%b 
07.
		set /a ausgang +=%%c 
08.
		set /a anzahl +=%%d 
09.
10.
11.
echo Gesamt Eingang: !eingang! 
12.
echo Gesamt Ausgang: !ausgang! 
13.
echo Gesamt Anzahl:  !anzahl!
Das Script durchsucht in einem Root-Ordner alle Unterordner nach einer Textdatei nach dem Muster 555123*.txt und sucht in diesen Files dann nach einer Zeile die mit ID555123 beginnt und addiert die jeweiligen Werte aus den Files.
Den Rest kannst du ja mit Variablen versehen und eine Abfrage mit set /p basteln.

Grüße Uwe
Bitte warten ..
Mitglied: dax4fun
15.12.2013 um 20:48 Uhr
PERFEKT DANKE

Könntest du mir bei noch einer Sache helfen

Wie kann ich es erreichen wenn ich 20131201 übergebe das immer +1 gerechnet wird bis 20131231 erreicht wird

Bsp.

set /p Datum=: 20131201

IF EXIST C:\20131201\555123*.txt copy C:\20131201bis20131231
IF EXIST C:\20131202\555123*.txt copy C:\20131201bis20131231
...
IF EXIST C:\%Datum%+29\555123*.txt copy C:\20131201bis20131231
IF EXIST C:\20131231\555123*.txt copy C:\20131201bis20131231

goto rechnen

HINTERGRUND: habe dann Abbrechnungsbereich und das würde ich dann pipe´n .... dann habe ich auch den Pfad der ja irgendwie das Datum ist und würde sehen wenn Daten fehlen

Danke
Bitte warten ..
Mitglied: bastla
15.12.2013, aktualisiert um 21:56 Uhr
Hallo dax4fun!

Du kannst bei Verwendung der Schreibweise "JJJJMMTT" einfach mit
set /a Datum+=1
den Datumswert erhöhen.

Da allerdings Batch mit Datum nicht so richtig gut umgehen kann, ist die Abfrage auf das Monatsende etwas knifflig. Zerlegen könntest Du den Datumswert jedenfalls so:
01.
set "Jahr=%Datum:~,4%" 
02.
set "Monat=%Datum:~4,2%" 
03.
set "Tag=%Datum:~6,2%"
Die Operatoren (etwa "LSS") für einen Vergleich findest Du in der Online-Hilfe (mit "if /?") ...

Grüße
bastla
Bitte warten ..
Mitglied: rubberman
15.12.2013, aktualisiert um 21:58 Uhr
Hallo Zusammen,

ich bin mir nicht sicher, ob es wirklich notwendig ist, aber müsste man nicht die maximale Anzahl Tage im Monat kennen?
01.
@echo off &setlocal 
02.
 
03.
set "Datum=20131201" 
04.
 
05.
set /a "Month = 1%Datum:~4,2% %% 100, Year = %Datum:~,4%" 
06.
set /a "MaxDOM = 30 + !(((Month & 9) + 6) %% 7) + !(Month ^ 2) * (!(Year %% 4) - !(Year %% 100) + !(Year %% 400) - 2)" 
07.
 
08.
for /l %%i in (%Datum% 1 %Datum:~,6%%MaxDOM%) do ( 
09.
  echo %%i 
10.
11.
 
12.
pause
... in der FOR /L Schleife dann entsprechend mit %%i agieren ...

Grüße
rubberman
Bitte warten ..
Mitglied: dax4fun
16.12.2013 um 02:14 Uhr
Danke fürs Interesse

Es FUNKT

Hatte Fehler bei der Ausgabe "echo Gesamt Eingang: !eingang! " hab es auf %eingang% geändert dann gings

Hab nicht gewusst das man mit "!" auch variablen deklarieren kann ??? bei mir hats nicht funktioniert
Bitte warten ..
Neuester Wissensbeitrag
Microsoft Office

MS Office Excel - Formel wird angezeigt, aber nicht berechneter Wert!

Tipp von holli.zimmi zum Thema Microsoft Office ...

Ähnliche Inhalte
Batch & Shell
gelöst Batch Ordner erstellen und verschieben (6)

Frage von Fromeonly zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch xkopie von Ordner in Ordner (3)

Frage von TicTakTeo zum Thema Batch & Shell ...

Windows Server
Rechtevergabe für Ordner in Windows Server 2012 R2 per Batch (3)

Frage von Sinzal zum Thema Windows Server ...

Batch & Shell
gelöst Per Batch einen Ordner mit der höchsten versionsnr aussuchen (2)

Frage von zaibon zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Off Topic
Handy in Raten kauifen oder nicht? (17)

Frage von mirko123 zum Thema Off Topic ...

Exchange Server
gelöst MS Exchange 2016 - Basicconfig Fragen (16)

Frage von maddig zum Thema Exchange Server ...

Windows Server
gelöst Rechte als Admin vergeben - Zugriff verweigert (14)

Frage von Ghost108 zum Thema Windows Server ...