tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
460
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Bitbull Bitbull ist offline Rookie
    Registriert seit
    Mar 2010
    Beiträge
    6
    Hallo erst mal . . .

    ich möchte in einer Batchdatei abhängig von der Zeit eine Datei mit einer bestimmten Endung versehen

    von 7-13 = F
    von 13-21 = S
    sonst N

    einiges habe ich mir zusammengesucht - aber mit set= xx geht das sooooo nicht:

    set stunde=%time:~11,2%
    if %stunde% GTR 14 set stunde=S

    Die zu speichernde Datei soll am Ende

    FOR /F "tokens=1,2,3 delims=/. " %%a in ('date/T') do set CDATE=%%c%%b%%a
    echo %cdate%

    201000303F.xls heißen




    vielen Dank für eure Mühen
     

  2. #2
    Biber2 Biber2 ist offline Mitglied Gold
    Registriert seit
    Jan 2007
    Ort
    Bremen
    Beiträge
    215
    Moin Bitbull,

    vielleicht wäre es ja hilfreich, wenn du beiläufig mal postest, wie denn auf deinem Rechner (oder auf dem, der dem Batchskript als Wirt dienen soll) die Ausgabe von "echo %time%" am CMD-Prompt aussieht.

    Auf meinem Rechner (dt. Win XP Prof SP3) und mit meinen regionalen Datums/Zeiteinstellungen würde herauskommen
    Code :
    1
    2
    
    >echo %time% set stunde=%time:~0,2%
    17:02:36,23 set stunde=17

    Du scheinst aber von einem spätphönizischem Zeitformat auszugehen... mit Stunden ab Position 12 in Länge 2....

    Grüße
    Biber
     

  3. #3
    Bitbull Bitbull ist offline Rookie
    Registriert seit
    Mar 2010
    Beiträge
    6
    Hallo erst mal . . .

    die echo %time% Geschichte hatte ich heute mittag aus dem Netz und es kommt nicht viel dabei raus, da es bei dem Artikel um die 2-stellige Darstellung aller Stunden ging. Ich habe das Original nicht weiter probiert.

    Aber schon mal vielen, vielen Dank
    Geändert von Bitbull (03.03.10 um 18:29 Uhr)
     

  4. #4
    Biber2 Biber2 ist offline Mitglied Gold
    Registriert seit
    Jan 2007
    Ort
    Bremen
    Beiträge
    215
    Moin Bitbull,

    ich verstehe deinen Kommentar nicht - anscheinend geht es dir mit meinem ähnlich.
    Das wäre doch schon mal eine erste Gemeinsamkeit. Darauf können wir doch aufbauen.

    Also nochmal meine Bitte:

    Wie bitte ist auf dem Rechner, auf dem dieses Batchfragment laufen soll, die Ausgabe von
    Code :
    1
    
    Echo %time%

    a) bei Stunden, die zweistellig sind
    b) bei Stunden, die < 10 sind? Hat die Anzeige eine führende "0", e.g. "07:33:22,11" oder ein Blank (" 7:33:33,11") oder
    c) sieht es ganz anders aus?

    Ich versuche es mal anders zu formulieren...
    Sogar der allseits beliebte Dr.House hat irgendwie eine relativ konkrete Vorstellung von den Inne- oder Schweinereien, die er kunstvoll zerlegen soll.
    Das sollten wir doch auch bei Stringzerlegungen in niederen Skriptsprachen ebenfalls an den Anfang jeglicher Seziererei stellen, oder?

    Grüße
    Biber
     

  5. #5
    Bitbull Bitbull ist offline Rookie
    Registriert seit
    Mar 2010
    Beiträge
    6
    Hallo Biber

    so ist das, wenn man über die gleiche Sache redet und sich trotzdem nicht versteht.

    Als ich es probiert habe war es schon 16:33:12,11 und ich mache normal um 16:00h Feierabend.

    Ich weiß aber nicht warum es wichtig ist, ob da "7" oder " 7" steht . . .
     

  6. #6
    Biber2 Biber2 ist offline Mitglied Gold
    Registriert seit
    Jan 2007
    Ort
    Bremen
    Beiträge
    215
    Moin Bitbull,
    Zitat Zitat von Bitbull Beitrag anzeigen
    Ich weiß aber nicht warum es wichtig ist, ob da "7" oder " 7" steht . . .
    Du hast doch vor, irgendwelche Stunden vor 7h morgens der Nacht zuzuordnen und Stunden ab 7h-13h der Frühstücksschicht.

    Deshalb wüsste ich schon gerne, gegen welchen String ich vergleichen muss bei der Anzeige von "Uhrzeit kurz nach 7h morgens"

    Beispiel am CMD-Prompt: (das führende ">" ist mein Prompt, nicht mit eingeben)
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    >set "mytime1=07:02:36,23"
    >set "mytime2= 7:02:36,23"
     
    >echo %mytime1% set stunde=%mytime1:~0,2%
    07:02:36,23 set stunde=07
     
    >echo %mytime2% set stunde=%mytime2:~0,2%
     7:02:36,23 set stunde= 7

    --> wie hoffentlich zu erkennen ist, ist der Wert von %Stunde% mal "07" , mal " 7".
    Und den willst du doch verglichen haben mit GTR oder GEQ oder sonst einem Vergleichsoperator.

    Oder hab ich jetzt was verpasst?

    Grüße
    Biber
     

  7. #7
    Biber2 Biber2 ist offline Mitglied Gold
    Registriert seit
    Jan 2007
    Ort
    Bremen
    Beiträge
    215
    Moin bitbull,

    es hat ja keinen Sinn, hier länger den Betrieb aufzuhalten.
    Versuch es anhand dieser Skizze:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    :: --------Snipp EndungMitZeitundSchicht.cmd
    ::von 7-13 = F
    ::von 13-21 = S
    ::sonst N
    @echo off & setlocal
    If NOT "%~1"=="" set "time=%~1"
    Set "stunde=%time:~0,2%"
    Set "stunde=%stunde: =0%"
    Set "Schichtkz=N"
    if "%stunde%" GEQ "07" if "%stunde%" LEQ "13" Set "schichtkz=F"
    if "%stunde%" GEQ "13" if "%stunde%" LEQ "21" Set "schichtkz=S"
     
     
    FOR /F "tokens=1,2,3 delims=/. " %%a in ("%date%") do set CDATE=%%c%%b%%a
    echo Dateiendung bei %date% %time%: [%cdate%%schichtkz%]
    :: --------Snapp EndungMitZeitundSchicht.cmd

    Testen des Schnipsels vom CMD-Prompt aus
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    (= 9:09:59  D:\temp=)
    >set "testzeiten= " 3:04:33,22" " 8:51:42,46"  "18:51:42,46"  "12:51:42,46""
     
    > For %i in ( %testzeiten%) do @call e:\schnipsel\EndungMitZeitundSchicht.cmd %i
    Dateiendung bei 04.03.10  3:04:33,22: [100304N]
    Dateiendung bei 04.03.10  8:51:42,46: [100304F]
    Dateiendung bei 04.03.10 18:51:42,46: [100304S]
    Dateiendung bei 04.03.10 12:51:42,46: [100304F]

    Grüße
    Biber
     

  8. #8
    Bitbull Bitbull ist offline Rookie
    Registriert seit
    Mar 2010
    Beiträge
    6
    Hallo und besten Dank,


    genau so hab' ich es jetzt in Gebrauch.


    S uuuuuu p e r - Danke
    ´
     

  9. #9
    Biber2 Biber2 ist offline Mitglied Gold
    Registriert seit
    Jan 2007
    Ort
    Bremen
    Beiträge
    215
    Moin bitbull,

    okay, jetzt werde ich zwar nie erfahren, wie denn bei dir nun Zeiten vor 10h morgens angezeigt werden...

    Aber was soll's... in der IT und im richtigen Leben kann man/frau ja nicht immer alles haben.

    Freut mich aber, dass es geklappt hat.

    Grüße
    Biber
     

  10. #10
    Bitbull Bitbull ist offline Rookie
    Registriert seit
    Mar 2010
    Beiträge
    6
    Hallo Biber

    nocmals besten Dank . . .

    meine Zeiten werden einstellig angezeigt - also ohne führendes Leerzeichen.
    Du hattest die Lösung gerade gepostet als ich antworten wollte. Da war mir die Umsetzung lieber als die Antwort.

    besten Grüße aus dem Rheinland

    p.s.

    hatte dann noch ein 'kleines' Problem mit GOTO zu lösen. Erst als ich den Befehl GOTO komplett mit Großbuchstaben geschrieben hatte, ging es.

    Ob mir das jemand erklären kann . . .
     

Ähnliche Themen

  1. Zur vollen Stunde
    Von Nobody23 im Forum Java
    Antworten: 4
    Letzter Beitrag: 26.11.08, 17:39
  2. Zeit bis zur vollen stunde
    Von Ichbinalex im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 26.04.08, 07:40
  3. Eine Stunde allein mit max...
    Von cofter im Forum Werkstatt
    Antworten: 8
    Letzter Beitrag: 20.11.07, 13:49
  4. Timestamp plus 1 Stunde eintragen ?
    Von Paulus120 im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 13.10.05, 22:42
  5. DSL für eine Stunde Blockiert
    Von Thomas Darimont im Forum Netzwerke
    Antworten: 1
    Letzter Beitrag: 29.01.03, 10:15