WinFuture-Forum.de: cmd-Script: Zeitabgleich - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

cmd-Script: Zeitabgleich


#1 Mitglied ist offline   AnMa 

  • Gruppe: aktive Mitglieder
  • Beiträge: 43
  • Beigetreten: 01. Mai 13
  • Reputation: 1

geschrieben 04. Mai 2013 - 13:09

Hallo,

nun war ich mir eigentlich sicher, dass meine scripterei funktioniert und mußte feststellen, dass ich noch einen großen Fehler darin habe.

Geplant ist dass das Script zu bestimmten Zeiten bestimme Daten downloaded. Das wollte ich wie folgt lösen:

Als erstes eine Abfrage der aktuellen Systemzeit:
set CURRENTTIME=%TIME::=.%
set CURRENTTIME=%CURRENTTIME:~0,8%


Danach sollte mittels folgendem Teilscript die %currenttime% abgeglichen und der Variablen %hour% ein entsprechender Wert zugeordnet werden.
if %CURRENTTIME% LSS 5.50.00 goto nofile
if %CURRENTTIME% GEQ 5.50.00 set hour=06
if %CURRENTTIME% GEQ 8.50.00 set hour=09
if %CURRENTTIME% GEQ 11.50.00 set hour=12
if %CURRENTTIME% GEQ 15.50.00 set hour=16
if %CURRENTTIME% GEQ 19.50.00 set hour=20


Wenn es also vor 5:50 Uhr ist soll nichts passieren (nofile), zwischen 05:50 uhr und 8:50 Uhr soll %hour% auf den Wert "06" gesetz weren usw...

Aber irgendwo habe ich einen Denkfehler ... :(

Gruß
Anna
0

Anzeige



#2 _d4rkn3ss4ev3r_

  • Gruppe: Gäste

geschrieben 04. Mai 2013 - 13:27

So gehts:

set CURRENTTIME=%TIME::=%
set CURRENTTIME=%CURRENTTIME:~0,-3%

if %CURRENTTIME% LSS 55000 goto nofile
if %CURRENTTIME% GEQ 55000 set hour=06
if %CURRENTTIME% GEQ 85000 set hour=09
if %CURRENTTIME% GEQ 115000 set hour=12
if %CURRENTTIME% GEQ 155000 set hour=16
if %CURRENTTIME% GEQ 195000 set hour=20

0

#3 Mitglied ist offline   AnMa 

  • Gruppe: aktive Mitglieder
  • Beiträge: 43
  • Beigetreten: 01. Mai 13
  • Reputation: 1

geschrieben 04. Mai 2013 - 13:52

Puh, da muß ich noch viel lernen :)

Danke vielmals, das funktioniert. ....
0

#4 Mitglied ist offline   AnMa 

  • Gruppe: aktive Mitglieder
  • Beiträge: 43
  • Beigetreten: 01. Mai 13
  • Reputation: 1

geschrieben 05. Mai 2013 - 17:55

Jetzt hab ich nochmal eine Frage, meine Suchen in Google waren nciht sehr erfolgreich.

Kennt jemand von Euch eine Seite auf der die Thematik um Datum, Uhrzeit, Formate und Abfrage genauer erklärt werden?
0

#5 _d4rkn3ss4ev3r_

  • Gruppe: Gäste

geschrieben 05. Mai 2013 - 18:45

Es ist doch alles dokumentiert.

Datum: %date%
Zeit: %time%

Meinst du mit Formate - Umlaute? Hier:
ä = „

ö = ”

ü = 

Ä = Ž

Ö = ™

Ü = š

ß = á 


(Hinter ü steht was. Einfach markieren und in einem vernünftigen Editor wie Notepad++ einfügen.

Abfrage: if /?

Dieser Beitrag wurde von d4rkn3ss4ev3r bearbeitet: 05. Mai 2013 - 18:47

0

#6 Mitglied ist offline   AnMa 

  • Gruppe: aktive Mitglieder
  • Beiträge: 43
  • Beigetreten: 01. Mai 13
  • Reputation: 1

geschrieben 05. Mai 2013 - 19:02

:) Nein mir gings mehr um das hier ...

%TIME::=%
%CURRENTTIME:~0,-3%



Also das "::=" und ":~0,-3" Oder sind das allgemeine Formatierungen die nicht im direkten Zusammenhang mit der Zeit usw. stehen?

Ich fürchte fast, dass ich komplett auf dem falschen Pfad bin?
0

#7 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.902
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 05. Mai 2013 - 19:11

Das sind Formatierungen für den SET-Befehl.

SET /? gibt da Aufschluß.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#8 _d4rkn3ss4ev3r_

  • Gruppe: Gäste

geschrieben 05. Mai 2013 - 19:12

Das sind allgemeine Formatierungen ja.

Du kannst ja mal gucken: http://www.dostips.c...anipulation.php
Gibt eigentlich zu Batch haufen Zeug im Internet.

Edit:
@RalphS: Falsch. Man kann zb auch echo %bla:~0,3% ausführen. Wiegesagt das sind allgemeine Formatierungen.

Dieser Beitrag wurde von d4rkn3ss4ev3r bearbeitet: 05. Mai 2013 - 19:12

0

#9 Mitglied ist offline   AnMa 

  • Gruppe: aktive Mitglieder
  • Beiträge: 43
  • Beigetreten: 01. Mai 13
  • Reputation: 1

geschrieben 05. Mai 2013 - 22:03

Perfekt Danke Euch ...

Ich hatte einfach nach den falschen Begrifflichkeiten gegoogelt.
0

#10 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.902
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 05. Mai 2013 - 22:35

@D4E: Die alle mit Umgebungsvariablen zu tun haben. :)

Auslesen kann man die überall mit. Aber setzen get nur mit SET und daher ist halt dort die Hilfe.

Zugegeben: die Dokumentation ist da ein bißchen arg verteilt. Manches hier und manches da; so richtig durchsehen tut man da nicht.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#11 Mitglied ist offline   AnMa 

  • Gruppe: aktive Mitglieder
  • Beiträge: 43
  • Beigetreten: 01. Mai 13
  • Reputation: 1

geschrieben 19. Mai 2013 - 13:57

Hallo zusammen :)

ich hätte da mal wieder ein Problem bei dem ich einfach nicht weiter komme.

Es geht um die Abfrage des Wochentags die für den späteren Download wichtig ist.

Beim meinen Google-Suchen bin ich über folgendes gestolpert, bekomme hier aber anstatt der entsprechenden Ausgabe des Tages (Mon, ....., Son) nur den Wert "0"

set DOW=

for /f %%g in ('wmic path win32_localtime get dayofweek^|findstr /v /r "^$"') do (
set DOW=%%g
)

if %DOW%==1 set DOW=Mon
if %DOW%==2 set DOW=Die
if %DOW%==3 set DOW=Mit
if %DOW%==4 set DOW=Don
if %DOW%==5 set DOW=Fre
if %DOW%==6 set DOW=Sam
if %DOW%==7 set DOW=Son


Ich vermute ja, dass ich dazu noch ein Tool brauche. Doch was ich bis jetzt gefunden habe führt mich zu keiner Lösung.


Gruß
Anna
0

#12 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.902
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 19. Mai 2013 - 14:08

wmic gibt eine Kopfzeile und einen Wert aus, also muß der For-Block so aussehen:

for /f "tokens=1 skip=1" %%g in ('wmic path win32_localtime get dayofweek') do @(
...
)



Kein Grund, noch DOW zu setzen. Wenn Du die Variable nicht weiter brauchst, bleib bei %%g .
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#13 _d4rkn3ss4ev3r_

  • Gruppe: Gäste

geschrieben 19. Mai 2013 - 14:14

So wäre es besser:
for /f %%i in ('wmic path win32_localtime get dayofweek^|findstr "[0-6]"') do set DOW=%%i


Das ergibt zwar für Sonntag den Wert 0, aber ist schon ok.
Der Gesamtcode lautet dann so:


for /f %%i in ('wmic path win32_localtime get dayofweek^|findstr "[0-6]"') do set DOW=%%i

if %DOW%==0 set DOW=Son
if %DOW%==1 set DOW=Mon
if %DOW%==2 set DOW=Die
if %DOW%==3 set DOW=Mit
if %DOW%==4 set DOW=Don
if %DOW%==5 set DOW=Fre
if %DOW%==6 set DOW=Sam

Dieser Beitrag wurde von d4rkn3ss4ev3r bearbeitet: 19. Mai 2013 - 14:15

0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0