Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Datensicherung probleme beim Ausführen einer batch Datei unter NT

Frage Entwicklung Batch & Shell

Mitglied: Bertel84

Bertel84 (Level 1) - Jetzt verbinden

10.07.2007, aktualisiert 11.07.2007, 5429 Aufrufe, 13 Kommentare

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:
01.
@ECHO OFF 
02.
 
03.
CLS 
04.
REM ------------------------------------------------------------ 
05.
 
06.
REM Name:  Datensicherung.BAT 
07.
 
08.
REM Autor: T.H. 
09.
 
10.
REM Datum: 06. Juli 2007 
11.
 
12.
REM ------------------------------------------------------------ 
13.
ECHO Die Datensicherung wird gestartet ..  
14.
ECHO. 
15.
ECHO Diese Datei darf nicht vor Beendigung geschlossen werden ! 
16.
 
17.
ECHO. 
18.
 
19.
ECHO. 
20.
 
21.
PAUSE 
22.
 
23.
ECHO. 
24.
 
25.
ECHO Das Netzlaufwerk wird eingebunden.. 
26.
 
27.
net use S: \\DBAG-QS-SVR1\Datensicherung_Aura kennwort /user:Administrator  
28.
 
29.
ECHO Abgeschlossen.  
30.
 
31.
ECHO. 
32.
 
33.
set jahr=%date:~-4% 
34.
set monat=%date:~-7,2% 
35.
set tag=%date:~-10,2% 
36.
 
37.
XCOPY D:\AURADatenWS\Messungen\*.* S:\DatensicherungAura_vom_%jahr%_%monat%_%tag%\*.* /E /S /H 
38.
 
39.
ECHO. 
40.
 
41.
XCOPY D:\AURADatenWS\Messungen\*.* D:\Datensicherung_AURA\DatensicherungAura_vom_%jahr%_%monat%_%tag%\*.* /E /S /H 
42.
 
43.
ECHO. 
44.
 
45.
rmdir /s /q D:\AURADatenWS\Messungen\  
46.
 
47.
ECHO. 
48.
 
49.
MD D:\AURADatenWS\Messungen\  
50.
 
51.
MOVE D:\Datensicherung_AURA\DatensicherungAura_vom_%jahr%_%monat%_%tag%\Messauswahl.par D:\AURADatenWS\Messungen\ 
52.
 
53.
MOVE D:\Datensicherung_AURA\DatensicherungAura_vom_%jahr%_%monat%_%tag%\Messliste.pls D:\AURADatenWS\Messungen\ 
54.
 
55.
ECHO. 
56.
 
57.
ECHO Netzlaufwerk wird getrennt.. 
58.
 
59.
net use S: /del 
60.
 
61.
ECHO Netzlaufwerk wurde getrennt. 
62.
 
63.
ECHO. 
64.
 
65.
ECHO Die Datensicherung wurde abgeschlossen ... 
66.
 
67.
PAUSE 
68.
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..

Mit freundlichen Grüßen
Bertel84
Mitglied: Markx
10.07.2007 um 10:08 Uhr
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..)
01.
:: Ermittelt Datums/Zeitvariable aus Systemdatum/Systemzeit OHNE REG-Abfragen 
02.
:: Einschränkung: Sollte schon NT oder höher sein, Deshalb die nächte Zeile 
03.
IF NOT "%OS%"=="Windows_NT" echo "%0 läuft nur unter WinNT oder höher. Sorry." && GOTO :eof 
04.
SET "AllDateTimeVars=DateOrder KW DoW DoY DD TT MM JJ YY hh min ss ms" 
05.
FOR %%i in (%AllDateTimeVars%) do @if defined %%i set %%i= 
06.
:: Datum OHNE Wochentag. Zwischenschritt mit MyDateOhneDoW 
07.
Set MyDateOhneDoW=%date% 
08.
:: Die nächste Code-Zeile ändert nur dann etwas, wenn ein Wochentag mitgeliefert wird. 
09.
:: Aus "Sa 01.10.2005" wird dann "01.10.2005" 
10.
FOR /F "tokens=2" %%i in ("%MyDateOhneDoW%") do Set MyDateOhneDoW=%%i 
11.
FOR /F "tokens=1-7 delims=:/.-, " %%i in ("%MyDateOhneDow% %time%") do ( 
12.
For /f "tokens=2-4 delims=/-,() skip=1" %%a in ('echo.^|date') do ( 
13.
for %%@ in ("DateOrder=%%a-%%b-%%c" "%%a=%%i" "%%b=%%j" "%%c=%%k" "hh=%%l" "min=%%m" "ss=%%n" "ms=%%o") do set %%@ 
14.
15.
16.
:: Zusammenbauen Zeitstempel 
17.
SET myDateTime=%JJ%_%MM%_%TT%_%hh%_%min% 
18.
SET myDate=%JJ%_%MM%_%TT% 
19.
SET myTime=%hh%_%min%
Bräuchtest das nur am Anfang deines bisherigen Scriptes einfügen und die Variablen in den XCOPY und MOVE Anweisungen anpassen..
Bitte warten ..
Mitglied: Bertel84
10.07.2007 um 11:04 Uhr
Hallo,

schonmal vielen Dank für die schnelle Antwort..

aber welche Variable muss ich den nun einfügen ? das %myDate% ?? (ich will ja nur das Datum im Format JJ mm tt)

Batch:
01.
REM ------------------------------------------------------------ 
02.
 
03.
REM Name:  Datensicherung.BAT 
04.
 
05.
REM Autor: T.H. 
06.
 
07.
REM Datum: 06. Juli 2007 
08.
 
09.
REM ------------------------------------------------------------ 
10.
ECHO Die Datensicherung wird gestartet ..  
11.
ECHO. 
12.
ECHO Diese Datei darf nicht vor Beendigung geschlossen werden ! 
13.
 
14.
ECHO. 
15.
 
16.
ECHO. 
17.
 
18.
PAUSE 
19.
 
20.
ECHO. 
21.
 
22.
ECHO Das Netzlaufwerk wird eingebunden.. 
23.
 
24.
net use S: \\DBAG-QS-SVR1\Datensicherung_Aura kennwort /user:Administrator  
25.
 
26.
ECHO Abgeschlossen.  
27.
 
28.
ECHO. 
29.
 
30.
:set jahr=%date:~-4% 
31.
:set monat=%date:~-7,2% 
32.
:set tag=%date:~-10,2% 
33.
 
34.
:: Ermittelt Datums/Zeitvariable aus Systemdatum/Systemzeit OHNE REG-Abfragen 
35.
:: Einschränkung: Sollte schon NT oder höher sein, Deshalb die nächte Zeile 
36.
IF NOT "%OS%"=="Windows_NT" echo "%0 läuft nur unter WinNT oder höher. Sorry." && GOTO :eof 
37.
SET "AllDateTimeVars=DateOrder KW DoW DoY DD TT MM JJ YY hh min ss ms" 
38.
FOR %%i in (%AllDateTimeVars%) do @if defined %%i set %%i= 
39.
:: Datum OHNE Wochentag. Zwischenschritt mit MyDateOhneDoW 
40.
Set MyDateOhneDoW=%date% 
41.
:: Die nächste Code-Zeile ändert nur dann etwas, wenn ein Wochentag mitgeliefert wird. 
42.
:: Aus "Sa 01.10.2005" wird dann "01.10.2005" 
43.
FOR /F "tokens=2" %%i in ("%MyDateOhneDoW%") do Set MyDateOhneDoW=%%i 
44.
FOR /F "tokens=1-7 delims=:/.-, " %%i in ("%MyDateOhneDow% %time%") do ( 
45.
For /f "tokens=2-4 delims=/-,() skip=1" %%a in ('echo.^|date') do ( 
46.
for %%@ in ("DateOrder=%%a-%%b-%%c" "%%a=%%i" "%%b=%%j" "%%c=%%k" "hh=%%l" "min=%%m" "ss=%%n" "ms=%%o") do set %%@ 
47.
48.
49.
:: Zusammenbauen Zeitstempel 
50.
SET myDateTime=%JJ%_%MM%_%TT%_%hh%_%min% 
51.
SET myDate=%JJ%_%MM%_%TT% 
52.
SET myTime=%hh%_%min% 
53.
 
54.
 
55.
XCOPY D:\AURADatenWS\Messungen\*.* S:\DatensicherungAura_vom_%myDate%\*.* /E /S /H 
56.
 
57.
ECHO. 
58.
 
59.
XCOPY D:\AURADatenWS\Messungen\*.* D:\Datensicherung_AURA\DatensicherungAura_vom_%myDate%\*.* /E /S /H 
60.
 
61.
ECHO. 
62.
 
63.
ECHO Verzeichnis "Messungen" wird nun geleert.. Fortfuehren ? 
64.
 
65.
ECHO. 
66.
 
67.
PAUSE 
68.
 
69.
rmdir /s /q D:\AURADatenWS\Messungen\  
70.
 
71.
ECHO. 
72.
 
73.
MD D:\AURADatenWS\Messungen\  
74.
 
75.
MOVE D:\Datensicherung_AURA\DatensicherungAura_vom_%myDate%\Messauswahl.par D:\AURADatenWS\Messungen\ 
76.
 
77.
MOVE D:\Datensicherung_AURA\DatensicherungAura_vom_%myDate%\Messliste.pls D:\AURADatenWS\Messungen\ 
78.
 
79.
ECHO. 
80.
 
81.
ECHO Netzlaufwerk wird getrennt.. 
82.
 
83.
net use S: /del 
84.
 
85.
ECHO Netzlaufwerk wurde getrennt. 
86.
 
87.
ECHO. 
88.
 
89.
ECHO Die Datensicherung wurde abgeschlossen ... 
90.
 
91.
PAUSE 
92.
REM -------------------------- E O F ---------------------------
Wenn ich es so eingebe erstellt er mir zwar den Ordner, doch ohne datum..
Der Ordner heißt dann nur "DatensicherungAura_vom___"

Irgendwas hab ich wohl falsch gemacht....
Bitte warten ..
Mitglied: Markx
10.07.2007 um 11:31 Uhr
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
01.
:: Ermittelt Datums/Zeitvariable aus Systemdatum/Systemzeit OHNE REG-Abfragen 
02.
:: Einschränkung: Sollte schon NT oder höher sein, Deshalb die nächte Zeile 
03.
IF NOT "%OS%"=="Windows_NT" echo "%0 läuft nur unter WinNT oder höher. Sorry." && GOTO :eof 
04.
SET "AllDateTimeVars=DateOrder KW DoW DoY DD TT MM JJ YY hh min ss ms" 
05.
FOR %%i in (%AllDateTimeVars%) do @if defined %%i set %%i= 
06.
:: Datum OHNE Wochentag. Zwischenschritt mit MyDateOhneDoW 
07.
Set MyDateOhneDoW=%date% 
08.
:: Die nächste Code-Zeile ändert nur dann etwas, wenn ein Wochentag mitgeliefert wird. 
09.
:: Aus "Sa 01.10.2005" wird dann "01.10.2005" 
10.
FOR /F "tokens=2" %%i in ("%MyDateOhneDoW%") do Set MyDateOhneDoW=%%i 
11.
FOR /F "tokens=1-7 delims=:/.-, " %%i in ("%MyDateOhneDow% %time%") do ( 
12.
For /f "tokens=2-4 delims=/-,() skip=1" %%a in ('echo.^|date') do ( 
13.
for %%@ in ("DateOrder=%%a-%%b-%%c" "%%a=%%i" "%%b=%%j" "%%c=%%k" "hh=%%l" "min=%%m" "ss=%%n" "ms=%%o") do set %%@ 
14.
15.
16.
:: Zusammenbauen Zeitstempel 
17.
SET myDateTime=%JJ%_%MM%_%TT%_%hh%_%min% 
18.
SET myDate=%JJ%_%MM%_%TT% 
19.
SET myTime=%hh%_%min% 
20.
 
21.
ECHO %myDate% 
22.
PAUSE 
23.
EXIT
.. damit kannste erstmal prüfen, ob das Datum richtig zusammengebaut wird..
Bitte warten ..
Mitglied: Bertel84
10.07.2007 um 11:39 Uhr
Ich habe es gerade nochmal getestet unten am Rechner.. Das Script funktioniert so tadellos. Auf dem 2000er Rechner in meinem Büro klappt es ja auch alles, nur wie gesagt auf den Windows NT 4 Rechner in der Werkstatt nicht..

Es kommt mir dort so vor, als würde er die befehle %mydate% usw dort einfach ignorieren...

Sind vielleicht andere zeichen als die % zeichen notwendig ??
Bitte warten ..
Mitglied: Markx
10.07.2007 um 11:55 Uhr
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..
Bitte warten ..
Mitglied: Bertel84
10.07.2007 um 11:58 Uhr
gibts den eine möglichkeit, das datum das Win NT auswirft direkt zu nutzen ohne irgendeine form begrenzung (zB jj mm tt) ?

Die Form des datums ist mir auch eher nebensächlich.. es geht nur darum, _das_ ein datum mit angehangen wird..

nur mit %date% oder so wirds ja sicher nicht klappen, oder ? ^^
Bitte warten ..
Mitglied: Biber
11.07.2007 um 00:18 Uhr
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
Bitte warten ..
Mitglied: Bertel84
11.07.2007 um 08:23 Uhr
Hallo und schönen guten Morgen,

also ich habe an dem NT Rechner nun mal einen ECHO %date% befehl laufen lassen. Das ergebnis seht ihr hier:

http://www.250kb.de/u/070711/j/efa56bd9.jpg

Hinter dem 2ten ECHO stand das %date%, aber wie sie sehen, sehen sie nix.. ^^
Er ignoriert das %date% irgendwie..

Wenn ich in der cmd.exe date/t eingebe wirft er mir folgendes datumsformat aus:

http://www.250kb.de/u/070711/j/38a0c857.jpg

So.. nun noch den Programmablauf mit ECHO ON.. (nur den wichtigstens Teil wos ums Datum geht):

http://www.250kb.de/u/070711/j/c86d4ede.jpg

Wie man sieht ignoriert er auch hier das Datum komplett... auf meinem Win2k Rechner im Büro funktioniert es tadellos und er gibt das korrekte datum in korrekter Form aus.

Hat jemand so ein Problem schon mal gehabt ? Also ich bin mit meinem bisserl Latein am ende..

Mit freundlichen Grüßen Bertel84
Bitte warten ..
Mitglied: Biber
11.07.2007 um 08:54 Uhr
Moin bertel84,

danke für die schnelle Antwort.
Ist mir zwar neu, dass Win NT die Variable %date% nicht kennt, aber..na ja, dann Plan B:

Ersetze bitte die Zeile:
01.
Set MyDateOhneDoW=%date%
...durch diese neue:
01.
for /f %%i in ('date/T') do Set MyDateOhneDoW=%%i
..und weiter gehts...

Grüße
Biber
Bitte warten ..
Mitglied: Bertel84
11.07.2007 um 10:11 Uhr
Hallo,

habs so gemacht wie du es gesagt hast... ergebnis siehst du hier:

http://www.250kb.de/u/070711/j/0f9afc12.jpg

http://www.250kb.de/u/070711/j/802ad66f.jpg

http://www.250kb.de/u/070711/j/0b742fdf.jpg

http://www.250kb.de/u/070711/j/55bc5c31.jpg

Wie man sieht, erkennt er schonmal das heute Mittwoch ist..
Ein Licht am Ende des Tunnels..


schon mal viel, vielen Dank für deine Mühen.. hoffe den rest bekommen wir auch noch hin.

Mit freundlichen Grüßen
Bitte warten ..
Mitglied: Biber
11.07.2007 um 10:25 Uhr
Okay, Bertel84,

dann muss ich noch mal nachbessern:
Ersetze: -----> for /f %%i in ('date/T') do Set MyDateOhneDoW=%%i
Durch neu: ---> for /f "delims=" %%i in ('date/T') do Set MyDateOhneDoW=%%i

Fertig.

Grüße
Biber
Bitte warten ..
Mitglied: Bertel84
11.07.2007 um 12:34 Uhr
Hallo..

wieder zurück vom Testen und was soll ich sagen ?! .. Es funktioniert wunderbar !

Also 1000 Dank an dich.. bist mein persönlicher Held des tages.. ^^

viele grüße
Bitte warten ..
Mitglied: Biber
11.07.2007 um 13:42 Uhr
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
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...