nakoda
Goto Top

Batch läuft nicht mehr richtig unter Win XP

Hallo zusammen,

bin hier neu und hätte mal ne Frage.
Ich habe bisher mit W2k gearbeitet.
Hierunter hatte ich eine Batchdatei laufen mit der ich einen Datenbankdump gemacht und diesen dann
gezippt habe.
Hier mal ein Beispiel:
@echo OFFCLS::----------------------------:: Name: burpMP.bat:: Autor: AG:: Datum: 12. September 2006::----------------------------FOR /F "tokens=1,2,3,4 delims=/-. " %%a in ('date/T') do set CDATE=%%b%time:~0,2%%time:~3,2%A%%c%%dECHO *ECHO Die Sicherung der Datenbank beginnt..........ECHO *ECHO.exp rplan/rplan@rpmechp TABLES=(AD_MECH_BM) FILE=D:\burp\table_ad_mech_bm_test.dmpREN D:\burp\*.dmp table_ad_mech_bm_test_%cdate%.dmpwzzip d:\burp\table_ad_mech_bm_test_%cdate%.zip d:\burp\*.dmpDEL D:\burp\*.dmpEXIT

Das hatte zur Folge das hinten eine Datei mit folgendem Format rausgefallen ist: burp_231800A102007.zip
Nun haben aber einige Änderungen stattgefunden und zwar in der Forma das WinXP als OS und IZarc als Komprimierungs-
programm benutzt wird.
Daher habe ich logischerweise den Batchlauf anpassen müssen:
@echo OFFCLS::----------------------------:: Name: burpmp.bat:: Autor: AG:: Datum: 12. September 2006::----------------------------FOR /F "tokens=1,2,3,4 delims=/-. " %%a in ('date/T') do set CDATE=%%b%time:~0,2%%time:~3,2%A%%c%%dECHO *ECHO Die Sicherung der RPlan AIM Datenbank beginnt..........ECHO *ECHO.exp RPLAN/RBQisOqrPL@rpmechp FILE=D:\burp\burp.dmpc:\Programme\izarc\izarcc D:\BURP\burp_%cdate%.zip D:\BURP\*.dmpDEL D:\burp\*.dmpEXIT
Nur was jetzt rauskommt, nämlich burp_111110A2007.zip entspricht nicht mehr dem ursprünglichen.
Hat jemand von Euch ne Idee was noch zu ändern ist.
Wenn noch FRagen auftreten sollten beantworte ich diese gerne.
Dank im voraus.

Gruß

Armin

Content-ID: 73875

Url: https://administrator.de/contentid/73875

Ausgedruckt am: 20.11.2024 um 04:11 Uhr

bastla
bastla 19.11.2007 um 12:50:10 Uhr
Goto Top
Hallo nakoda und willkommen im Forum!

Der Unterschied liegt im Ergebnis des "date /t", da in XP der Wochentag nicht mit ausgegeben wird. Aus diesem Grund habe ich mir angewöhnt, das Datum von hinten aufzulösen (und dazu %date% zu verwenden):
set Jahr=%date:~-4%
set Monat=%date:~-7,2%
set Tag=%date:~-10,2%
Damit funktioniert's dann sowohl in 2000 als auch in XP.

Grüße
bastla
nakoda
nakoda 19.11.2007 um 13:01:34 Uhr
Goto Top
Moin bastla,

danke für die fixe Antwort.
Kann ich mir so auch wieder den Dateiname zusammensetzen wie vorher?
Wie hole ich mir denn die Uhrzeit?
Die brauch ichg nämlich auch noch.
Das ganze sieht dann wie folgt aus [dd][hhmm][Timezone][Monat drei Bchstb. oder Zahl][yy]

Gruß

nakoda
bastla
bastla 19.11.2007 um 14:06:08 Uhr
Goto Top
Hallo nakoda!

Sollte so gehen (wobei Du in Deinem Beispiel das Jahr vierstellig hattest - für zweistellig am Ende -2% statt -4%):
set CDATE=%date:~-10,2%%time:~0,2%%time:~3,2%A%date:~-7,2%%date:~-4%

Wie hole ich mir denn die Uhrzeit?
Hattest Du auch oben schon: %time% und dann entsprechend zerlegen - siehe "set /?").

Grüße
bastla
nakoda
nakoda 19.11.2007 um 14:22:48 Uhr
Goto Top
Hi bastla,

prima Sache das. Läuft super.
Dankeschön.
Eine Sache hätte ich da noch, kann man sich vom Monat auch als wort holen und davon nur die Ersten drei Buchstaben (Jan, Feb, usw,....)?
Dann bräucht man gar nicht mehr von Hand beigehen. ^^
Biber
Biber 19.11.2007 um 15:33:26 Uhr
Goto Top
Moin nakoda,

wenn Du alle schmutzigen Details wissen möchtest, schau Dir bitte das "BatchTut III- Datums- und Zeitvariablen im Batch" im Bereich "Batch & Shell" an.

Wenn Du nur eine schnelle Lösong brauchst / Du zeitig essen willst:

...
::in Deinem Batch
....
set Monat=%date:~-7,2%
....

echo wscript.echo left(monthname(wscript.arguments(0)),3)>%temp%wotag3.vbs
For /f %%i in ('cscript //nologo %temp%wotag3.vbs %Monat%') do set MonatC3=%%i  
:: jetzt steht in %MonatC3%: "Jan" oder "Nov"-->Monat 3stellig.  

Grüße
Biber
[Edit] @bastla: Und wer war diesmal der Rechtsüberholer?
Ich musste ja auch nur halb so viele Zeilen schreiben... face-wink [/Edit]
bastla
bastla 19.11.2007 um 15:38:46 Uhr
Goto Top
Hallo nakoda!

Ein wenig (einmalige) Handarbeit habe ich noch Dir übrig gelassen:
set M=%date:~-7,2%
set MName=
if %M%==01 set MName=Jan
...
if %M%==12 set MName=Dez
if not defined MName echo Monatsermittlung fehlerhaft & goto :eof
set CDATE=%date:~-10,2%%time:~0,2%%time:~3,2%A%MName%%date:~-4%
Die Überprüfung mit "if defined" sollte eigentlich nicht nötig sein, aber schaden tut's auch nicht.

Grüße
bastla

[Edit] @Biber: Und wer war diesmal der Rechtsüberholer? face-wink [/Edit]
nakoda
nakoda 20.11.2007 um 08:40:50 Uhr
Goto Top
Also Jungs/Mädels! :o)
Ich bin begeistert.
Klappt alles prima hätte hier schon viel eher mal reinschauen sollen.
Die "schmutzigen" Details werde ich mir dann zu einem späteren Zeitpunkt mal geben. face-smile
Hab beides probiert. Bin abr dann bei der längeren Version vom bastla geblieben.
Vielen Dank Euch und noch einen schönen Tag.