kingcoollui
Goto Top

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

Content-Key: 121508

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

Printed on: April 24, 2024 at 20:04 o'clock

Mitglied: 60730
60730 Jul 28, 2009 at 18:15:41 (UTC)
Goto Top
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.

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ß
Member: ralfkausk
ralfkausk Jul 29, 2009 at 06:47:36 (UTC)
Goto Top
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
Member: kingcoollui
kingcoollui Jul 29, 2009 at 21:29:58 (UTC)
Goto Top
Hallo,

danke für die schnellen Antworten.

Habe jetzt mal die pausen raus genommen und habe mal zum testen folgendes geschrieben.
@echo off
echo.
echo ------------------------------------
echo Einspielung der Arbeitsdateien
echo.
echo fuer WIN2000
echo.
echo Bitte Warten...
echo ------------------------------------
echo.
echo.
cls
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
echo ...Daten-Einspielung beginnt...
xcopy "C:\abc"\*.* "C:\def"\*.* /e /v /s /y  
echo.
echo ...Einspielung der Dateien ist beendet
echo.
echo Ordner wird geleert
echo.
del "C:\abc"\*.*  
echo.
exit
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]
Member: ralfkausk
ralfkausk Jul 30, 2009 at 06:00:46 (UTC)
Goto Top
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 zuzugreifen

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
- falls die Datei nicht existiert und auch nicht schreibend auf das Verzeichniss zugegriffen werden kann wird der Kopiervorgang abgebrochen

if exist C:\BACKUP.TXT echo !!! Festplatte Bereit !!!
- ohne Worte

DEL 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.