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, 1384 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
Windows 10

Powershell 5 BSOD

(5)

Tipp von agowa338 zum Thema Windows 10 ...

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

Frage von Fromeonly zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Abfrage Vergleiche mit Variable goto (4)

Frage von Zunaras zum Thema Batch & Shell ...

Batch & Shell
gelöst Per Batch Dateien in einen Ordner - ext. Festplatte übertragen (2)

Frage von tocksick zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (17)

Frage von Unwichtig zum Thema Netzwerkmanagement ...