batch datei erstellen für windows 2000 server
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 121508
Url: https://administrator.de/contentid/121508
Ausgedruckt am: 18.11.2024 um 03:11 Uhr
4 Kommentare
Neuester Kommentar
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ß
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
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
:: create variable %DATUM% with current date
:: format = JJJJMMDD
:: create variable %ZEIT% with current time
:: format HH:MM
for /f "tokens=1,2 delims=: " %%i in ('time /t') do set ZEIT=%%i%%j
for /f "tokens=1,2,3 delims=. " %%i in ('date /t') do set DATUM=%%k%%j%%i
::
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.