[Batch/Bash] Batch erklärung wichtig

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von hesje, 20. April 2009 .

  1. 20. April 2009
    Batch erklärung wichtig

    heu leute ich brauch mal kurz eure hilfe kann mir bitte jemand dieses Skript erklären
    ich weiß das es den Tag der heute ist anzeigt und dateien dann in den ordner schiebt aber ich weiß nicht wie das skript auf den tag kommt
    liest es das im bios aus oder berechnet er den tag????

    Code:
    @echo off
    
    REM Hier eventuell Reihenfolge und delims anpassen
    FOR /F "tokens=1,2,3 delims=." %%a in ('echo %date%') do set yy=%%c & set mm=%%b & set dd=%%a
    
    set /a "TwoDigitYearMax=2038%%1000"
    if 1%yy% LSS 200 if 1%yy% LSS 1%TwoDigitYearMax% (set yy=20%yy%) else (set yy=19%yy%)
    set /a dd=100%dd%%%100,mm=100%mm%%%100
    set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,dow=153*m+2
    set /a dow=dow/5+dd+y*365+y/4-y/100+y/400-2472630,dow%%=7,dow+=1
    
    If %dow% equ 1 set "WoTa=montag"
    If %dow% equ 2 set "WoTa=dienstag"
    If %dow% equ 3 set "WoTa=mittwoch"
    If %dow% equ 4 set "WoTa=donnerstag"
    If %dow% equ 5 set "WoTa=freitag"
    If %dow% equ 6 set "WoTa=samstag"
    If %dow% equ 7 set "WoTa=sonntag"
    
    echo Heute ist es: %WoTa% !
    
    echo Die Daten werden in den Ordner %WoTa% verschoben!
    
    #Bitte hier die Räume eintragen z.B. Move E:\Dein Raum\*.jpg E:\Dein Raum\%WoTa%
    
    
    MOVE E:\AudiMax\*.jpg E:\AudiMax\%WoTa%
    MOVE E:\C30\*.jpg E:\C30\%WoTa%
    MOVE E:\C123\*.jpg E:\C123\%WoTa%
    MOVE E:\D032\*.jpg E:\D032\%WoTa%
    MOVE E:\D31\*.jpg E:\D31\%WoTa%
    MOVE E:\D127\*.jpg E:\D127\%WoTa%
    MOVE E:\Schranke\*.jpg E:\Schranke\%WoTa%
    MOVE E:\Treppe\*.jpg E:\Treppe\%WoTa%
     
  2. 20. April 2009
    AW: Batch erklärung wichtig

    Code:
    FOR /F "tokens=1,2,3 delims=." %%a in ('echo %date%') do set yy=%%c & set mm=%%b & set dd=%%a
    Hier passiert das Entscheidende. Das "echo %date%" gibt dir das Datum (z.B. 20.04.2009) zurück. Mit der FOR-Schleife kannst du dann auf die Einzelnen Teile (Tag, Monat, Jahr) zugreifen. Mit delims=. splittet die Schleife das Datum in die drei Bestandteile (%%a, %%b, %%c).
     
  3. 27. April 2009
    AW: Batch erklärung wichtig

    etwas genauer????
    geht das auch

    hab darin nämlich gar keinen plan

    gruß
     
  4. 27. April 2009
    AW: Batch erklärung wichtig

    Die Zeile die Pyro dir gezeigt hat führt den befehl "echo %date%" aus. In der Systemvariablen %date% steht das aktuelle Datum, echo gibt den Wert der Variablen aus. Das Datum wird afaik von Windows abgegriffen (Timeserver, bzw. eigene Einstellung).
    Wurde ja eigentlich alles erklärt. Die For-Schleife nimmt nun das Datum und zerhackt es an den einzelnen Punkten. Die einzelteile (Tag, Monat, Jahr) werden in den Variablen %%a, %%b und %%c gespeichert.
    Im nächsten Block wird durch einen Algorythmus der Wochentag berechnet und in %WoTa% gespeichert (%dow% entspricht dem Wochentag als Zahl, also 1 für Montag und 7 für Sonntag, je nachdem welche Zahl der Algorythmus liefert wird der Wert für %WoTa% generiert).
    Danach folgen wieder zwei Ausgaben mit "echo".
    Im Anschluss werden die Dateien mit "move" verschoben, hier am Beispiel
    "MOVE E:\AudiMax\*.jpg E:\AudiMax\%WoTa%" werden alle Dateien (* steht für alle) aus dem Ordner E:\AudiMax\ nach E:\AudiMax\ in den Unterordner verschoben, der dem Wert von %WoTa% entspricht.

    So, hoffentlich war das genau genug.

    GreetZ, ~Br4inP4in~
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.