Top-Themen

Aktuelle Themen (A bis Z)

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

Logfile mit CMD verarbeitet

Frage Entwicklung

Mitglied: Maik007

Maik007 (Level 1) - Jetzt verbinden

24.05.2014, aktualisiert 25.05.2014, 2088 Aufrufe, 6 Kommentare

Hallo,
ich taste mich gerade an Batch Dateien heran und habe nun folgende Fragestellung, die ich lösen möchte:

1. Ich möchte den CMD einer Aufgabe in einer Log Datei auswerfen

Dafür nutze ich folgendes:
#rem Logfile mit der Aufgabe schreiben
SCHTASKS /query /TN Test >C:\log.txt

Das funktioniert!

Der Inhalt sieht so aus:

Ordner: \
Aufgabenname N„chste Laufzeit Status
Test 25.05.2014 20:00:00 Bereit

2. Nun möchte ich die Uhrzeit nehmen (20:00:00) und die Minuten um 1 Hochzählen (20:01:00) und dann soll der Task genau mit dieser Uhrzeit aktualisiert werden.
Das bedeutet am nächsten Tag läuft der Task dann mit 20:01:00 und so weiter.

Der Befehl für die Uhrzeit ändern lautet:
SCHTASKS /change /TN Test /ST 20:01:00

Ich möchte aber, dass er 20:01:00 selber aus dem Logfile errechnet!

Ich hoffe, dass mir hier einer helfen kann, denn das ist für mich eine knifflige Aufgabe!
Mitglied: bastla
LÖSUNG 24.05.2014, aktualisiert 25.05.2014
Hallo Maik007 und willkommen im Forum!

Das Schreiben in eine Datei braucht's eigentlich nicht - es sollte genügen:
01.
@echo off & setlocal 
02.
set "Task=Test" 
03.
for /f "tokens=3-5 delims=: " %%a in ('SCHTASKS /query ^|findstr /ibc:"%Task% "') do set "Std=1%%a" & set "Min=1%%b" & set "Sek=%%c" 
04.
set /a Min+=1 
05.
if %Min% geq 160 ( 
06.
    set Min-=60 
07.
    set Std+=1 
08.
09.
if %Std% geq 124 set /a Std-=24 
10.
echo SCHTASKS /change /TN Test /ST %Std:~-2%:%Min:~-2%:%Sek%
Das "echo" am Beginn der Zeile 9 soll ein gefahrloses Testen ermöglichen, da so der Befehl nur angezeigt, aber nicht ausgeführt wird.

Kurz zum Ablauf:
Die Ausgabe von "SCHTASKS" wird zunächst gefiltert, sodass nur die relevante Zeile weiter bearbeitet wird. Diese Bearbeitung besteht im Zerlegen anhand der Trennzeichen ":" und Leerzeichen. Von den daraus resultierenden Teilen ("Tokens") werden Tokens 3 (Stunde = %%a), Token 4 (Minute = %%b) und Token 5 (Sekunde = %%c) benötigt und daher in Variablen gespeichert.

Für Stunde und Minute (mit denen gerechnet werden muss) wird noch eine "1" am Anfang hinzugefügt, sodass für die Uhrzeit "20:00:00" in den Variablen folgende Werte stehen:
in %Std% 120
in %Min% 100
in %Sek% 00

Der Sinn des Verschiebens der Werte in den Bereich ab 100 ist, dass so einerseits die führenden Nullen ("00" anstatt "0") erhalten bleiben und andererseits das "Oktalzahl-Problem" vermieden wird: Werte, die mit "0" beginnen, werden bei Berechnungen als Oktalzahlen interpretiert,, was für "00" bis "07" egal wäre, aber für "08" und "09" zu Fehlen führt, da dies keine gültigen Oktalzahlen wären.

Nach dem Erhöhen des Minutenwertes wird überprüft, ob 160 (also 60 Minuten) erreicht oder überschritten wären; falls ja, wird der Minutenwert um 60 verringert und die Stunde um 1 erhöht. Anschließend wird dann geprüft, ob sich daraus 124 (oder mehr) als Stundenwert ergeben hätte und ggf 24 abgezogen.

Um dann wieder auf die 2-stelligen Werte für Stunde und Minute zu kommen, werden Teilstrings (nur die letzten beiden Zeichen - siehe: set /?) der Variablen %Std% und %Min% verwendet, woduch die vorher am Anfang hinzugefügte "1" wieder wegfällt.

Grüße
bastla

[Edit] "SCHTASKS /query" vereinfacht [/Edit]
Bitte warten ..
Mitglied: Maik007
24.05.2014 um 22:10 Uhr
Vielen Dank. Das ist wirklich Hammer.
Mit dem Batch kann man richtig viel machen!
Das ist es Danke!
Bitte warten ..
Mitglied: Maik007
25.05.2014 um 10:59 Uhr
Hallo bastla,
das sieht eigentlich von Script sehr gut aus und ist nachvollziehbar. Erstmal vielen Dank für die sehr gute Erklärung. Nun habe ich das Script mal ausprobiert und bekomme nun folgende Meldung:

C:\Users\BOBO>@echo off & setlocal
set "Task=Test"
for /f "tokens=3-5 delims=: " %%a in ('SCHTASKS /query /TN %Task%^|findstr /ibc:
"%Task% "') do set "Std=1%%a" &
"%%a" kann syntaktisch an dieser Stelle nicht verarbeitet werden.

set "Min=1%%b" & set "Sek=%%c"
set /a Min+=1
2if %Min% geq 160 (
Mehr? set Min-=60
Mehr? set Std+=1
Mehr? )
If %Std% geq 124 set /a Std-=24
SCHTASKS /change /TN Test /ST %Std:~-2%:%Min:~-2%:%Sek%
FEHLER: Ungültiger Startzeitwert.
Pause

Die Eintstellungen vom Task sind diese:
test 25.05.2014 20:00:00 Bereit

Liegt das am Windows7 System? Ich wollte das Script unter meinem Windows 7 32 bit Professionell laufen lassen.

Habt ihr eine Idee was ich falsch mache? Vielen Dank schonmal vorab!
Bitte warten ..
Mitglied: colinardo
LÖSUNG 25.05.2014, aktualisiert um 17:51 Uhr
Hallo Maik,
Habt ihr eine Idee was ich falsch mache? Vielen Dank schonmal vorab!
du solltest das obige Script in einer Datei speichern und mit der Endung *.bat oder *.cmd versehen und dann ausführen, nicht einfach in das Konsolenfenster einfügen. Wenn du es auf der Konsole Schritt für Schritt eingeben willst, musst du alle doppelten Prozentzeichen(%%) der For-Schleifen-Variablen durch einfache(%) ersetzen.

Grüße Uwe
Bitte warten ..
Mitglied: Maik007
25.05.2014 um 14:34 Uhr
Vielen Dank, dass war es!

Darf ich noch eine blöde Frage stellen?

Wenn ich nun das Script ausführe, kommt nun diese Meldung:

FEHLER: Auf dem lokalen Computer sind Benutzeranmeldeinformationen nicht
zulässig.

System, Benutzer und Passwort mitgegeben.
Haken gesetzt höchste Prio
und UAC ausgeschaltet
Benutzer hat Admin Rechte
Volle Zugriffsrechte auf die Batch Datei

Verstehe nicht, warum die Meldung kommt! Scheint nun die letzte Hürde sein!
Bitte warten ..
Mitglied: Maik007
25.05.2014 um 17:51 Uhr
Hi,
fehler selber gefunden. Habe das nun nur über das System laufen lassen und schon funktioniert es! Also vielen Dank an alle! Ihr habt mir sehr geholfen!
Bitte warten ..
Ähnliche Inhalte
Windows Server
Loginscript wird nicht verarbeitet
Frage von franksigWindows Server17 Kommentare

Hallo zusammen, Ich hab mal wieder ein leidiges Loginscriptproblem, Ausgangslage: es git eine GPO Namens "Loginskript-Produktion" ich habe dort ...

Windows Server
ImageUnattend.xml kann nicht analysiert bzw verarbeitet werden
Frage von frayk23Windows Server1 Kommentar

Hallo! Ich lerne autodidaktisch den Windows Server R2 kennen. Dazu habe ich in virtualbox einen Windows Server R2 Enterprise ...

Drucker und Scanner
Spool wird nicht verarbeitet bzw. nicht gelöscht
gelöst Frage von d4nny1Drucker und Scanner4 Kommentare

Hallo an alle und danke für die Hilfe, Situation: wir haben ein Windows-Netzwerk mit Win7 SP1 und XP SP3 ...

Batch & Shell
"C.E.O." kann syntaktisch an dieser Stelle nicht verarbeitet werden
gelöst Frage von HeacienBatch & Shell2 Kommentare

Ich bin gerade dabi die Smartphone App 'Don't get fired!' in Batch als abgewandte Version nachzuschreiben. Da die Formatierung ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 19 StundenApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 1 TagWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 1 TagWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement15 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Windows XP
Windows XP Aktivieren geht nicht
Frage von tetikmiroWindows XP13 Kommentare

Hallo Ich habe einen Windows XP mit einen vCenter Converter umgezogen auf eine ESXI. Soweit funktioniert dies auch ohne ...