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

Uhrzeit vergleichen

Frage Entwicklung Batch & Shell

Mitglied: Denim44

Denim44 (Level 1) - Jetzt verbinden

26.03.2010, aktualisiert 10:07 Uhr, 3222 Aufrufe, 7 Kommentare

Hi @ all,

Ich möchte mit einer Batch in einem .txt file die Uhrzeit (englisches format) auslesen und in eine temp datei von der aktuellen Uhrzeit ausgehend, filtern.

Bsp.:

03/22/2010 03:08:12 PM Test
03/22/2010 03:08:14 PM Test
03/22/2010 03:08:14 PM Test
03/22/2010 03:08:14 PM Test
03/22/2010 03:08:14 PM Test
03/22/2010 03:08:14 PM Test
03/22/2010 03:09:15 PM Test





Also wenn es 4:00 PM spät ist, sollen alle einträge von 3:00:00 - 3:59:59 gefiltert werden

bzw. soll halt alles was mit 03:* .. PM anfängt gefiltert werden
Mitglied: Biber
26.03.2010 um 10:57 Uhr
Moin Denim44,

das soltest du ohne viel Verrenkungen mit Find oder FindStr hinbekommen.

Demo am CMD-Prompt:
01.
>type e:\schnipsel\pmhours.txt 
02.
03/22/2010 03:08:12 PM Test 
03.
03/22/2010 03:08:14 PM Test 
04.
03/22/2010 03:08:14 PM Test 
05.
03/23/2010 05:08:14 PM Test 
06.
03/24/2010 07:08:14 PM Test 
07.
03/24/2010 04:08:14 PM Test 
08.
03/22/2010 03:08:14 PM Test 
09.
03/22/2010 03:08:14 PM Test 
10.
03/22/2010 03:08:14 PM Test 
11.
03/22/2010 03:09:15 PM Test 
12.
(=10:53:25  D:\temp=) 
13.
>findstr /c:"03/22/2010 03:" e:\schnipsel\pmhours.txt 
14.
03/22/2010 03:08:12 PM Test 
15.
03/22/2010 03:08:14 PM Test 
16.
03/22/2010 03:08:14 PM Test 
17.
03/22/2010 03:08:14 PM Test 
18.
03/22/2010 03:08:14 PM Test 
19.
03/22/2010 03:08:14 PM Test 
20.
03/22/2010 03:09:15 PM Test
Die untere Zeile zieht aus der Beispieldatei "pmHours.txt" nur die Zeilen mit "03/22/2010 03:" heraus.
Wenn deine Anforderung nicht mehr Restriktionen hat als im Beitragstext angegeben, dann wäre auch eine simple Suche nach "LEERZEICHEN-03-DOPPELPUNKT" ausreichend.
01.
>findstr /c:" 03:" e:\schnipsel\pmhours.txt 
02.
03/22/2010 03:08:12 PM Test 
03.
03/22/2010 03:08:14 PM Test 
04.
03/22/2010 03:08:14 PM Test 
05.
03/22/2010 03:08:14 PM Test 
06.
03/22/2010 03:08:14 PM Test 
07.
03/22/2010 03:08:14 PM Test 
08.
03/22/2010 03:09:15 PM Test
Grüße
Biber
Bitte warten ..
Mitglied: Denim44
26.03.2010 um 11:13 Uhr
gut gut .. geht schonmal


Nur wie kann ich jetzt aus der Systemzeit (englisch) bspw.: 03: auslesen und in eine Variable packen??
Bitte warten ..
Mitglied: Biber
26.03.2010 um 11:39 Uhr
Moin Denim44,

die Uhrzeit bekommst du über die Variable %time% angezeigt ....und die "Stunden" der Uhrzeit wären (bei meinen lokalen Einstellungen; Windows-Rechner) die ersten beiden Stellen davon
01.
>echo %time% Std:[%time:~0,2%] 
02.
11:33:45,74 Std:[11]
Falls bei dir ähnliche Verhältnisse herrschen, dann kannst du diese Stunden (nach einer Prüfung auf "PM/AM") in eine Variable speichern:
... 
Set "myHour=%time:~0,2%" 
...
Beispiele zum Umgang mit Datums- und Zeitvariablen im Batch findest du aber auch über die Forumssuchfunktion.

Grüße
Biber
Bitte warten ..
Mitglied: Denim44
26.03.2010 um 11:42 Uhr
perfekt :D .. ich dank dir für die kompetetente und schnelle Hilfe Biber
Bitte warten ..
Mitglied: bastla
26.03.2010 um 12:25 Uhr
@Biber

Interessanter wird das Filtern, wenn zusätzlich zwischen "AM" und "PM" unterschieden wird:
findstr /c:"03:..:.. PM" "e:\schnipsel\pmhours.txt"
sowie diverse Variationen davon (mit "*" anstelle von "." oder Angabe der Klasse "[0-9]" oder Maskierung der ":") liefern bei mir (unter XP) keine Ausgabe ...

Dass sich als Workaround ein zweiter Filtervorgang nur auf "PM" anbietet, ist natürlich klar.

Grüße
bastla
Bitte warten ..
Mitglied: Biber
26.03.2010 um 12:36 Uhr
Moin bastla,

unterschätz die Redmonder PraktikantInnen nicht.
01.
>type e:\schnipsel\pmhours.txt 
02.
03/22/2010 03:08:12 PM Test 
03.
03/22/2010 03:08:14 PM Test 
04.
03/22/2010 03:08:14 PM Test 
05.
03/23/2010 05:08:14 PM Test 
06.
03/24/2010 07:08:14 PM Test 
07.
03/24/2010 04:08:14 PM Test 
08.
03/22/2010 03:08:14 AM Test 
09.
03/22/2010 03:08:14 AM Test 
10.
03/22/2010 03:08:14 PM Test 
11.
03/22/2010 03:09:15 PM Test 
12.
(=12:34:55  D:\temp=) 
13.
>findstr /R /C:".* 03:.*PM*." e:\schnipsel\pmhours.txt 
14.
03/22/2010 03:08:12 PM Test 
15.
03/22/2010 03:08:14 PM Test 
16.
03/22/2010 03:08:14 PM Test 
17.
03/22/2010 03:08:14 PM Test 
18.
03/22/2010 03:09:15 PM Test
Grüße
Biber
Bitte warten ..
Mitglied: bastla
26.03.2010 um 13:14 Uhr
@Biber
... womit wieder einmal die alte Bauernregel "Wer RegEx haben will, muss es auch sagen." bewiesen wäre ...

Thx
bastla
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows Server
AD-Berechtigungen von zwei Servern miteinander vergleichen (3)

Frage von s0m3ting zum Thema Windows Server ...

Batch & Shell
gelöst Powershell - Dateien aus verschiedenen Arrays - Attribute vergleichen (5)

Frage von Giffas zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

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

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...