Frage ist gelöstbatch datei erstellen für windows 2000 server
28.07.2009
19:49:32 Uhr2787 Aufrufe
4 Antworten
19:49:32 Uhr
4 Antworten
Noch nicht bewertet
Hallo zusammen,
ich möchte eine Batch Datei erstellen, die auf einem Windows 2000 Server Dateien aus einem Verzeichnis xyz nach abc kopiert und danach die Dateien aus xyz löscht. Das ganze soll um 3 Uhr in der Früh passieren und danach soll der Server ausgeschalten werden.
Habe bis jetzt nur das hier gefunden:
@echo off
echo.
echo ------------------------------------
echo Einspielung der Arbeitsdateien
echo.
echo fuer WIN2000
echo.
echo Bitte Warten...
echo ------------------------------------
echo.
echo.
pause
cls
if not exist !!!Zielpfad!!!\Backup.txt COPY C:\SKRIPT\BACKUP.TXT E:\BACKUP.TXT
if not exist E:\BACKUP.TXT echo !!! Festplatte nicht Aufrufbar !!!
if not exist E:\BACKUP.TXT echo !!! keine Datensicherung !!!
pause
if not exist E:\BACKUP.TXT exit
if exist E:\BACKUP.TXT echo !!! Festplatte Bereit !!!
DEL E:\BACKUP.TXT
pause
echo Ordner wird geleert für Dateneinspielung
echo.
delete "PFAD_ZUM_ORDNER_DER_GELEERT_WERDEN_SOLL"\*.*
echo.
echo ...Daten-Einspielung beginnt...
xcopy "QUELLPFAD"\*.* "ZIELPFAD"\*.* /e /v /s /y
echo.
echo ...Einspielung der Dateien ist beendet
echo.
pause
exit
Kann ich das verwenden?
Kenne mich absolut nicht aus mit Batch Dateien.
Danke und beste Grüße
Lui
ich möchte eine Batch Datei erstellen, die auf einem Windows 2000 Server Dateien aus einem Verzeichnis xyz nach abc kopiert und danach die Dateien aus xyz löscht. Das ganze soll um 3 Uhr in der Früh passieren und danach soll der Server ausgeschalten werden.
Habe bis jetzt nur das hier gefunden:
@echo off
echo.
echo ------------------------------------
echo Einspielung der Arbeitsdateien
echo.
echo fuer WIN2000
echo.
echo Bitte Warten...
echo ------------------------------------
echo.
echo.
pause
cls
if not exist !!!Zielpfad!!!\Backup.txt COPY C:\SKRIPT\BACKUP.TXT E:\BACKUP.TXT
if not exist E:\BACKUP.TXT echo !!! Festplatte nicht Aufrufbar !!!
if not exist E:\BACKUP.TXT echo !!! keine Datensicherung !!!
pause
if not exist E:\BACKUP.TXT exit
if exist E:\BACKUP.TXT echo !!! Festplatte Bereit !!!
DEL E:\BACKUP.TXT
pause
echo Ordner wird geleert für Dateneinspielung
echo.
delete "PFAD_ZUM_ORDNER_DER_GELEERT_WERDEN_SOLL"\*.*
echo.
echo ...Daten-Einspielung beginnt...
xcopy "QUELLPFAD"\*.* "ZIELPFAD"\*.* /e /v /s /y
echo.
echo ...Einspielung der Dateien ist beendet
echo.
pause
exit
Kann ich das verwenden?
Kenne mich absolut nicht aus mit Batch Dateien.
Danke und beste Grüße
Lui
TimoBeil schreibt am 28.07.2009 um 20:15:41 Uhr
Servus,
pi mal daumen kannst du das als Vorlage verwenden.
aber eine Pause - die immer pausiet - nachts um 3 eher weniger.
Anstatt xcopy - wäre move "eher" sinnig.
delete ohne /s /q ist auch eher fragwürdig - ob das nun funktioniert
Ergo - such mal hier nach einer etwas besseren Vorlage - alles - was dir "spanisch" vorkommt via Dosbos Spanischerbefehl /? ansehen.
Um am Schluss - obwohl wir das mit dem Servershutdown heute schon lang und breit als "quark" abgetan haben
Shutdown.exe und auch die hat eine Ausgabe /?
Gruß
pi mal daumen kannst du das als Vorlage verwenden.
aber eine Pause - die immer pausiet - nachts um 3 eher weniger.
Anstatt xcopy - wäre move "eher" sinnig.
if exist E:\BACKUP.TXT echo !!! Festplatte Bereit !!!
"stimmt" aber nur in sofern, dass eine kleine txt Datei da mal reingeschrieben wurde - ob der ganze Ordner reiin passt - wird nicht abgefragt.delete ohne /s /q ist auch eher fragwürdig - ob das nun funktioniert
Ergo - such mal hier nach einer etwas besseren Vorlage - alles - was dir "spanisch" vorkommt via Dosbos Spanischerbefehl /? ansehen.
Um am Schluss - obwohl wir das mit dem Servershutdown heute schon lang und breit als "quark" abgetan haben
Shutdown.exe und auch die hat eine Ausgabe /?
Gruß
rkujadt schreibt am 29.07.2009 um 08:47:36 Uhr
guck dir mal robocopy bzw. xcopy an (bevorzugt robocopy)
mit beiden kannst Du kopieren und danach pruefen lassen ob alles glatt gelaufen ist
wenn das gelaufen ist kannst Du das Quellverzeichnis loeschen, ansonsten abbrechen
robocopy parameter:
/MOV :: MOVe files (delete from source after copying)
/MOVE :: MOVE files AND dirs (delete from source after copying)
robocopy ist in der Lage, falls gewuenscht, inkrementell zu sichern, bedeutet es werden nur neuere Dateien gesichert
Deine Sicherung wuerde jeden morgen bereits bestehende Datein ueberschreiben!
Das script kannst Du entweder ueber den Taskplanner oder ueber at zum gewuenschten Zeitpunkt starten lassen
mit beiden kannst Du kopieren und danach pruefen lassen ob alles glatt gelaufen ist
wenn das gelaufen ist kannst Du das Quellverzeichnis loeschen, ansonsten abbrechen
robocopy parameter:
/MOV :: MOVe files (delete from source after copying)
/MOVE :: MOVE files AND dirs (delete from source after copying)
robocopy ist in der Lage, falls gewuenscht, inkrementell zu sichern, bedeutet es werden nur neuere Dateien gesichert
Deine Sicherung wuerde jeden morgen bereits bestehende Datein ueberschreiben!
Das script kannst Du entweder ueber den Taskplanner oder ueber at zum gewuenschten Zeitpunkt starten lassen
kingcoollui schreibt am 29.07.2009 um 23:29:58 Uhr
Hallo,
danke für die schnellen Antworten.
Habe jetzt mal die pausen raus genommen und habe mal zum testen folgendes geschrieben.
Was ich nun aber nicht verstehe, für was brauche ich:
if not exist C:\backup.TXT COPY C:\SKRIPT\BACKUP.TXT C:\BACKUP.TXT
if not exist C:\backup.TXT echo !!! Festplatte nicht Aufrufbar !!!
if not exist C:\backup.TXT echo !!! keine Datensicherung !!!
if not exist C:\BACKUP.TXT exit
if exist C:\BACKUP.TXT echo !!! Festplatte Bereit !!!
DEL C:\BACKUP.TXT
und wie kann ich den "del" befehl so festlegen, dass ich nicht gefragt werde ob ich wirklich den Inhalt aus abc löschen will?
Zuletzt weis ich nicht wo ich diesen Befehl automatisieren kann, ohne das ich auf irgendwas klicken muss. Sprich dass der Rechner die Batchdatei automatisch um XX Uhr ausführt.
Danke schon jetzt für eure Hilfe!
Beste Grüße
Lui
[Edit Biber] Code-Tags nachgetragen [/Edit]
danke für die schnellen Antworten.
Habe jetzt mal die pausen raus genommen und habe mal zum testen folgendes geschrieben.
01.
@echo off 02.
echo. 03.
echo ------------------------------------ 04.
echo Einspielung der Arbeitsdateien 05.
echo. 06.
echo fuer WIN2000 07.
echo. 08.
echo Bitte Warten... 09.
echo ------------------------------------ 10.
echo. 11.
echo. 12.
cls 13.
if not exist C:\backup.TXT COPY C:\SKRIPT\BACKUP.TXT C:\BACKUP.TXT 14.
if not exist C:\backup.TXT echo !!! Festplatte nicht Aufrufbar !!! 15.
if not exist C:\backup.TXT echo !!! keine Datensicherung !!! 16.
if not exist C:\BACKUP.TXT exit 17.
if exist C:\BACKUP.TXT echo !!! Festplatte Bereit !!! 18.
DEL C:\BACKUP.TXT 19.
echo ...Daten-Einspielung beginnt... 20.
xcopy "C:\abc"\*.* "C:\def"\*.* /e /v /s /y 21.
echo. 22.
echo ...Einspielung der Dateien ist beendet 23.
echo. 24.
echo Ordner wird geleert 25.
echo. 26.
del "C:\abc"\*.* 27.
echo. 28.
exitif not exist C:\backup.TXT COPY C:\SKRIPT\BACKUP.TXT C:\BACKUP.TXT
if not exist C:\backup.TXT echo !!! Festplatte nicht Aufrufbar !!!
if not exist C:\backup.TXT echo !!! keine Datensicherung !!!
if not exist C:\BACKUP.TXT exit
if exist C:\BACKUP.TXT echo !!! Festplatte Bereit !!!
DEL C:\BACKUP.TXT
und wie kann ich den "del" befehl so festlegen, dass ich nicht gefragt werde ob ich wirklich den Inhalt aus abc löschen will?
Zuletzt weis ich nicht wo ich diesen Befehl automatisieren kann, ohne das ich auf irgendwas klicken muss. Sprich dass der Rechner die Batchdatei automatisch um XX Uhr ausführt.
Danke schon jetzt für eure Hilfe!
Beste Grüße
Lui
[Edit Biber] Code-Tags nachgetragen [/Edit]
rkujadt schreibt am 30.07.2009 um 08:00:46 Uhr
if not exist C:\backup.TXT COPY C:\SKRIPT\BACKUP.TXT C:\BACKUP.TXT
- wenn die datei nicht existiert (wird ja bei jedem Kopierjob geloescht!!! ) wird versucht schreibend auf das Verzeichniss zuzugreifenif not exist C:\backup.TXT echo !!! Festplatte nicht Aufrufbar !!!
if not exist C:\backup.TXT echo !!! keine Datensicherung !!!
if not exist C:\BACKUP.TXT exit
- falls die Datei nicht existiert und auch nicht schreibend auf das Verzeichniss zugegriffen werden kann wird der Kopiervorgang abgebrochenif not exist C:\backup.TXT echo !!! keine Datensicherung !!!
if not exist C:\BACKUP.TXT exit
if exist C:\BACKUP.TXT echo !!! Festplatte Bereit !!!
- ohne WorteDEL C:\BACKUP.TXT
- hier soll wohl einfach nur die Datei geloescht werden damit sie andere in dem Verzeichniss nicht stoert, warum auch immer?!?In deiner Anforderung ging es nur darum Daten lokal zu kopieren
Ich haette da einen Vorschlag
01.
:: create variable %DATUM% with current date 02.
:: format = JJJJMMDD 03.
:: create variable %ZEIT% with current time 04.
:: format HH:MM 05.
for /f "tokens=1,2 delims=: " %%i in ('time /t') do set ZEIT=%%i%%j 06.
for /f "tokens=1,2,3 delims=. " %%i in ('date /t') do set DATUM=%%k%%j%%i 07.
:: 08.
robocopy "C:\bla1\bla2\xyz" "C:\bla3\bla4\abc" /E /MOV /ETA /LOG+:"C:\temp\%DATUM%-%ZEIT%_logfile.txt"Wenn du es noch besser machen willst, dann verpackst Du die Pfadangaben in variablen und benutzt diese. Da macht das ganze noch komfortabler.
Wenn das script funktioniert kannst Du es per Taskplaner bzw. AT-Befehl um 3 Uhr laufen lassen.












