+ Antworten
Ergebnis 1 bis 4 von 4
  1. #1
    No Life Lengen1971 wird schon bald berühmt werden
    Registriert seit
    11.11.2005
    Alter
    40
    Beiträge
    557
    Downloads
    0
    Uploads
    0
    Renommee-Modifikator
    105

    Standard batch programmierung befehl set

    Hi,

    weiß jemand, warum der Befehl:

    Code:
    FOR /f "tokens=2 delims= " %%A IN ('date /t') DO (
    		SET v_all=%%A
    	)
    SET DAY=%v_all:~0,2%
    auf win2k nicht mehr funzt?
    Bei 2k war DAY dann z.B. "02", eben der Teilstring von v_all. Jetzt ist DAY "˜2". Somit schlägt das ganze Script fehl.

    Muß ich evtl. eine Befehlserweiterung aktivieren? Gibt´s sowas?

    Grüße
    Michel


    Windows 7 Home Premium 32, ATI 3850, AS-Rock ALive XFire, Athlon X2 6000+, 2 Gig Ram

  2. #2
    No Life Tilo2300 sorgt für eine eindrucksvolle AtmosphäreTilo2300 sorgt für eine eindrucksvolle Atmosphäre Avatar von Tilo2300
    Registriert seit
    28.01.2002
    Ort
    Jülich
    Alter
    35
    Beiträge
    401
    Downloads
    8
    Uploads
    0
    Renommee-Modifikator
    121

    Standard

    Shalom!

    Ich weiß ja nicht, warum du das alles so umständlich machst, aber folgender Fehler ist schon mal da:

    Dein "date /t" gibt z. B. den String "19.03.2010" zurück.
    Als Trennzeichen in diesem String verwendest du das Leerzeichen ("delims= ").
    Von den so durch Trennzeichen geteilten Teilstrings willst du den 2. ("tokens=2") der Variablen "v_all" zuweisen.

    Merkst du was?
    Es gibt keine Leerzeichen in "19.03.2010".
    Damit gibt es keine Teilzeichenketten, sondern nur eine große Zeichenkette.
    Wenn du dann auf die 2. Teilzeichenkette zugreifst, ist die leer, und du erhälst deinen Käse.

    Mach doch aus "tokens=2" mal "tokens=1", dann sollte es gehen.

    Da ich immernoch nicht blicke, was die FOR-Schleife für einen Zweck haben soll... es gibt übrigens auch eine Variable %DATE%... da mußt du nicht mit FOR und "DATE /T" rumkrautern.

    Code:
    set day=%date:~0,2%
    set month=%date:~3,2%
    set year=%date:~6,4%
    echo Tag: %day%
    echo Monat: %month%
    echo Jahr: %year%
    Ergebnis:
    Tag: 19
    Monat: 03
    Jahr: 2010

    Du mußt allerdings aufpassen, was dein %date% (oder date /t) zurückgibt!
    Je nach Betriebssystem-Version sind die Standard-Ländereinstellungen für das Datums- und Zeitformat etwas anders.
    Manchmal wird "19.03.2010" ausgegeben, manchmal aber auch ""Fri, 19.03.2010" oder "Fri, Mar 19, 2010" oder so ähnlich.
    Das mußt du in den Ländereinstellungen überprüfen und gegebenenfalls anpassen!


    Geändert von Tilo2300 (19.03.2010 um 11:22 Uhr)
    Wenn alles auch im Eimer ist, so bleibt uns doch der Eimer.






  3. #3
    No Life Lengen1971 wird schon bald berühmt werden
    Registriert seit
    11.11.2005
    Alter
    40
    Beiträge
    557
    Downloads
    0
    Uploads
    0
    Themenstarter
    Renommee-Modifikator
    105

    Standard

    Hi Tilo,

    danke für deine ausführliche Antwort, die Variable %date% kannte ich noch nicht, hab ich aber bereits gefunden und das Script entsprechend einfacher gebastelt.

    Das Script hat so auf einem Win2k Server funktioniert, warum, weiß ich jetzt auch nicht. In meinem Thread war ja auch ein Schreibfehler, !auf Win2k8 ging es nicht mehr!

    Bis denn
    Gruß
    Michael


    Windows 7 Home Premium 32, ATI 3850, AS-Rock ALive XFire, Athlon X2 6000+, 2 Gig Ram

  4. #4
    No Life Tilo2300 sorgt für eine eindrucksvolle AtmosphäreTilo2300 sorgt für eine eindrucksvolle Atmosphäre Avatar von Tilo2300
    Registriert seit
    28.01.2002
    Ort
    Jülich
    Alter
    35
    Beiträge
    401
    Downloads
    8
    Uploads
    0
    Renommee-Modifikator
    121

    Standard

    Shalom!

    Schön, daß es läuft.
    Wie bereits erwähnt: Bevor man %date% - oder alles, was davon abgeleitet wird - verwendet, sollt eman sich ansehen, was %date% ausgibt... also in welchem Format bzw. welcher Schreibweise.

    Code:
    echo %date%
    gibt da ja Aufschluß.

    Falls man diese Format ändern möchte, muß man in der Systemsteuerung in die "Regions- und Sprachoptionen" (so heißt's bei WinXP) und ggf. die Ländereinstellungen anpassen.
    Die Bilder im Anhang zeigen ein paar unterschiedliche Ländereinstellungen und wie das Kurzdatum für diese Länder ausgegeben wird.


    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken batch programmierung befehl set-bild1.png   batch programmierung befehl set-bild2.png   batch programmierung befehl set-bild3.png   batch programmierung befehl set-bild4.png   batch programmierung befehl set-bild5.png  
    Wenn alles auch im Eimer ist, so bleibt uns doch der Eimer.






Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Ähnliche Themen

  1. batch Programmierung - Varable einlesen
    Von P_W im Forum Allgemein Windows 2000
    Antworten: 1
    Letzter Beitrag: 20.11.2009, 11:13
  2. Batch Befehl
    Von MardukHH im Forum Programmierung und Skripte
    Antworten: 11
    Letzter Beitrag: 05.02.2009, 21:42
  3. Verbindung mit dem Internet: Batch-Befehl
    Von vistale im Forum Netzwerk Windows Vista
    Antworten: 3
    Letzter Beitrag: 29.10.2007, 16:16
  4. Batch-Programmierung: Vergleiche
    Von Dee im Forum Programmierung und Skripte
    Antworten: 3
    Letzter Beitrag: 11.03.2004, 22:30
  5. Batch Befehl für Pause
    Von Letrala im Forum Allgemein Windows XP
    Antworten: 5
    Letzter Beitrag: 07.02.2003, 09:52

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein

Search Engine Friendly URLs by vBSEO 3.6.0