Datensicherung probleme beim Ausführen einer batch Datei unter NT
Hallo,
erstmal ein schönen guten Tag in die Runde. Dies ist mein erster beitrag in diesem Forum weil ich trotz intensiver Suche keine passende Lösung zu meinem Problem finden konnte.
Also folgende Situation:
Ich habe zur Datensicherung eine batchdatei geschrieben, welche auf einem Windows 2000 Recher auch super funktioniert und gestetet wurde.
Nun wollte ich die fertige Datei auf die Arbeitsstation aufspielen und dort auch verwenden. Problem ist, das auf dieser Arbeitsstation Windows NT drauf ist, und somit die Batch datei nicht wie vorher gewohnt durchläuft.
Also klar ausgedrückt:
Unter NT erstellt er den Sicherungs Ordner nicht wie bei Windows 2000 mit der datumsvariablen sondern meckert nur rum, das der ordner nicht angelegt werden kann.
Hier mal die batch, wie ich sie bis jetzt habe:
Ich weiß das ein paar ECHO's zuviel drin sind, aber das habe ich nur für mich zur Übersicht mit drin. ;)
Kann mir jemand dabei helfen die Datei auf Windows NT umzuschreiben ? Ich habe leider nur grundkentnisse in Programmiersprachen.. Also für eine kleine Batch reicht es noch gerade so.. ^^
schon mal vielen dank für die mühen..
mfg
Bertel84
erstmal ein schönen guten Tag in die Runde. Dies ist mein erster beitrag in diesem Forum weil ich trotz intensiver Suche keine passende Lösung zu meinem Problem finden konnte.
Also folgende Situation:
Ich habe zur Datensicherung eine batchdatei geschrieben, welche auf einem Windows 2000 Recher auch super funktioniert und gestetet wurde.
Nun wollte ich die fertige Datei auf die Arbeitsstation aufspielen und dort auch verwenden. Problem ist, das auf dieser Arbeitsstation Windows NT drauf ist, und somit die Batch datei nicht wie vorher gewohnt durchläuft.
Also klar ausgedrückt:
Unter NT erstellt er den Sicherungs Ordner nicht wie bei Windows 2000 mit der datumsvariablen sondern meckert nur rum, das der ordner nicht angelegt werden kann.
Hier mal die batch, wie ich sie bis jetzt habe:
@ECHO OFF
CLS
REM ------------------------------------------------------------
REM Name: Datensicherung.BAT
REM Autor: T.H.
REM Datum: 06. Juli 2007
REM ------------------------------------------------------------
ECHO Die Datensicherung wird gestartet ..
ECHO.
ECHO Diese Datei darf nicht vor Beendigung geschlossen werden !
ECHO.
ECHO.
PAUSE
ECHO.
ECHO Das Netzlaufwerk wird eingebunden..
net use S: \\DBAG-QS-SVR1\Datensicherung_Aura kennwort /user:Administrator
ECHO Abgeschlossen.
ECHO.
set jahr=%date:~-4%
set monat=%date:~-7,2%
set tag=%date:~-10,2%
XCOPY D:\AURADatenWS\Messungen\*.* S:\DatensicherungAura_vom_%jahr%_%monat%_%tag%\*.* /E /S /H
ECHO.
XCOPY D:\AURADatenWS\Messungen\*.* D:\Datensicherung_AURA\DatensicherungAura_vom_%jahr%_%monat%_%tag%\*.* /E /S /H
ECHO.
rmdir /s /q D:\AURADatenWS\Messungen\
ECHO.
MD D:\AURADatenWS\Messungen\
MOVE D:\Datensicherung_AURA\DatensicherungAura_vom_%jahr%_%monat%_%tag%\Messauswahl.par D:\AURADatenWS\Messungen\
MOVE D:\Datensicherung_AURA\DatensicherungAura_vom_%jahr%_%monat%_%tag%\Messliste.pls D:\AURADatenWS\Messungen\
ECHO.
ECHO Netzlaufwerk wird getrennt..
net use S: /del
ECHO Netzlaufwerk wurde getrennt.
ECHO.
ECHO Die Datensicherung wurde abgeschlossen ...
PAUSE
REM -------------------------- E O F ---------------------------
Ich weiß das ein paar ECHO's zuviel drin sind, aber das habe ich nur für mich zur Übersicht mit drin. ;)
Kann mir jemand dabei helfen die Datei auf Windows NT umzuschreiben ? Ich habe leider nur grundkentnisse in Programmiersprachen.. Also für eine kleine Batch reicht es noch gerade so.. ^^
schon mal vielen dank für die mühen..
mfg
Bertel84
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 63413
Url: https://administrator.de/contentid/63413
Ausgedruckt am: 22.11.2024 um 21:11 Uhr
13 Kommentare
Neuester Kommentar
hier ein Lösungsansatz den ich hier aus dem Forum habe:
(benutze das so nur noch in meinen Scripten, ist echt Gold wert.. das war mal glaub in nem Tutorial hier gepostet worden..)
Bräuchtest das nur am Anfang deines bisherigen Scriptes einfügen und die Variablen in den XCOPY und MOVE Anweisungen anpassen..
(benutze das so nur noch in meinen Scripten, ist echt Gold wert.. das war mal glaub in nem Tutorial hier gepostet worden..)
:: Ermittelt Datums/Zeitvariable aus Systemdatum/Systemzeit OHNE REG-Abfragen
:: Einschränkung: Sollte schon NT oder höher sein, Deshalb die nächte Zeile
IF NOT "%OS%"=="Windows_NT" echo "%0 läuft nur unter WinNT oder höher. Sorry." && GOTO :eof
SET "AllDateTimeVars=DateOrder KW DoW DoY DD TT MM JJ YY hh min ss ms"
FOR %%i in (%AllDateTimeVars%) do @if defined %%i set %%i=
:: Datum OHNE Wochentag. Zwischenschritt mit MyDateOhneDoW
Set MyDateOhneDoW=%date%
:: Die nächste Code-Zeile ändert nur dann etwas, wenn ein Wochentag mitgeliefert wird.
:: Aus "Sa 01.10.2005" wird dann "01.10.2005"
FOR /F "tokens=2" %%i in ("%MyDateOhneDoW%") do Set MyDateOhneDoW=%%i
FOR /F "tokens=1-7 delims=:/.-, " %%i in ("%MyDateOhneDow% %time%") do (
For /f "tokens=2-4 delims=/-,() skip=1" %%a in ('echo.^|date') do (
for %%@ in ("DateOrder=%%a-%%b-%%c" "%%a=%%i" "%%b=%%j" "%%c=%%k" "hh=%%l" "min=%%m" "ss=%%n" "ms=%%o") do set %%@
)
)
:: Zusammenbauen Zeitstempel
SET myDateTime=%JJ%_%MM%_%TT%_%hh%_%min%
SET myDate=%JJ%_%MM%_%TT%
SET myTime=%hh%_%min%
die 3 Zeilen musste wohl rausnehmen:
:set jahr=%date:~-4%
:set monat=%date:~-7,2%
:set tag=%date:~-10,2%
und probiere mal mit testhalber den Scriptteil von "mir" (siehe erste Antwort) als test.bat und unten drunter gib dir die Variablen aufm Bildschirm aus.. also
.. damit kannste erstmal prüfen, ob das Datum richtig zusammengebaut wird..
:set jahr=%date:~-4%
:set monat=%date:~-7,2%
:set tag=%date:~-10,2%
und probiere mal mit testhalber den Scriptteil von "mir" (siehe erste Antwort) als test.bat und unten drunter gib dir die Variablen aufm Bildschirm aus.. also
:: Ermittelt Datums/Zeitvariable aus Systemdatum/Systemzeit OHNE REG-Abfragen
:: Einschränkung: Sollte schon NT oder höher sein, Deshalb die nächte Zeile
IF NOT "%OS%"=="Windows_NT" echo "%0 läuft nur unter WinNT oder höher. Sorry." && GOTO :eof
SET "AllDateTimeVars=DateOrder KW DoW DoY DD TT MM JJ YY hh min ss ms"
FOR %%i in (%AllDateTimeVars%) do @if defined %%i set %%i=
:: Datum OHNE Wochentag. Zwischenschritt mit MyDateOhneDoW
Set MyDateOhneDoW=%date%
:: Die nächste Code-Zeile ändert nur dann etwas, wenn ein Wochentag mitgeliefert wird.
:: Aus "Sa 01.10.2005" wird dann "01.10.2005"
FOR /F "tokens=2" %%i in ("%MyDateOhneDoW%") do Set MyDateOhneDoW=%%i
FOR /F "tokens=1-7 delims=:/.-, " %%i in ("%MyDateOhneDow% %time%") do (
For /f "tokens=2-4 delims=/-,() skip=1" %%a in ('echo.^|date') do (
for %%@ in ("DateOrder=%%a-%%b-%%c" "%%a=%%i" "%%b=%%j" "%%c=%%k" "hh=%%l" "min=%%m" "ss=%%n" "ms=%%o") do set %%@
)
)
:: Zusammenbauen Zeitstempel
SET myDateTime=%JJ%_%MM%_%TT%_%hh%_%min%
SET myDate=%JJ%_%MM%_%TT%
SET myTime=%hh%_%min%
ECHO %myDate%
PAUSE
EXIT
also andere Zeichen sind sicher nicht notwendig.. ich vermute ganz stark, dass die Ursache das vom NT4 zurückgelieferte Datumsformat ist.. habe seit vielen Jahren kein NT4 aktiv "in Händen" gehabt.. insofern das Script nie direkt auf NT4 testen können (mein Hintergrund war der Formatunterschied von 2k, XP und 2k3).. sorry..
Moin Bertel84,
Klar, "nur mit %date% oder so" würden wir es auch hinbekommen, aber wenn Du einen Moment Zeit hast, würde wir gern erst das Problem eingrenzen, bevor wir es ignorieren oder umgehen.
Poste doch bitte einmal das Datum, das Dir von einem "echo %date%" am CMD-Prompt des NT-Rechners zurückgegeben wird.
Und/oder starte Deinen jetzigen Batch einmal vom CMD-Prompt mit eingeschaltetem "echo", also einem "echo on" am Anfang des Bätschelchens. Und poste die Bildschirmausgabe hier.
Mach Dir keine Sorgen, wenn es zu lang aussieht - ist alles recyclebar...
Grüße
Biber
Klar, "nur mit %date% oder so" würden wir es auch hinbekommen, aber wenn Du einen Moment Zeit hast, würde wir gern erst das Problem eingrenzen, bevor wir es ignorieren oder umgehen.
Poste doch bitte einmal das Datum, das Dir von einem "echo %date%" am CMD-Prompt des NT-Rechners zurückgegeben wird.
Und/oder starte Deinen jetzigen Batch einmal vom CMD-Prompt mit eingeschaltetem "echo", also einem "echo on" am Anfang des Bätschelchens. Und poste die Bildschirmausgabe hier.
Mach Dir keine Sorgen, wenn es zu lang aussieht - ist alles recyclebar...
Grüße
Biber
Moin Bertel84,
gern geschehen...
Ich werde diesen Bug oder vielmehr diesen Fall "Windows NT kennt die Variable %date% (noch) gar nicht" in dem oben erwähnten Tutorial Workshop Batch for Runaways Part III Datums- und Zeitvariablen im Batch bei Gelegenheit ergänzen und dabei auf diesen Thread verweisen.
Diesen Beitrag setze ich erstmal auf "gelöst" und "geschlossen".
Grüße
Biber
gern geschehen...
Ich werde diesen Bug oder vielmehr diesen Fall "Windows NT kennt die Variable %date% (noch) gar nicht" in dem oben erwähnten Tutorial Workshop Batch for Runaways Part III Datums- und Zeitvariablen im Batch bei Gelegenheit ergänzen und dabei auf diesen Thread verweisen.
Diesen Beitrag setze ich erstmal auf "gelöst" und "geschlossen".
Grüße
Biber