corraggiouno
Goto Top

Xcopy silent ausführen

Hi,

habe bisher folgendes Batch-Skript geschrieben


@echo off
echo.
echo ##################################################################
echo ## BACKUP OUTLOOK ##
echo ## ##
echo ##Bitte stellen Sie sicher, dass Ihr Outlook geschlossen ist!! ##
echo ##################################################################
echo Beim Betaetigen mit einer beliebigen Taste, wird die Sicherung durchgefuehrt
echo.
pause
copy "C:\Dokumente und Einstellungen\testperson\Lokale Einstellungen\Anwendungsdaten\Microsoft\Outlook" "C:\temp" /Y

Die Datensicherung funktioniert soweit. Aber was muss ich noch vervollständigen, damit das Skript silent ausgeführt wird und nicht die einzelnen Dateien z.B. die outlook.pst bei der Sicherung am Bildschirm ausgegeben wird.
Ferner möchte ich noch das dem User z.B. noch ein Satz wie "Die Datensicherung läuft" während der Sicherung ausgegeben wird.
Und zuletzt soll dann der PC nach der Sicherung herunterfahren.
Kann mir jemand da einen Tipp geben was ich noch in das Skript einbauen muss?

Content-ID: 149925

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

Ausgedruckt am: 26.11.2024 um 00:11 Uhr

noodyn
noodyn 30.08.2010 um 08:28:59 Uhr
Goto Top
Du könntest doch die Ausgabe in eine Datei umleiten (copy blabla > temp.txt) und diese danach einfach entfernen. (del temp.txt).

echo Sicherung laeuft
copy blabla > temp.txt
del temp.txt
echo Sicherung komplett, Rechner wird heruntergefahren
shutdown /s /t
Mr.Floppy2
Mr.Floppy2 30.08.2010 um 08:36:27 Uhr
Goto Top
Hallo,

wozu umständlich in eine Datei umleiten und danch die Datei löschen? Es gibt schon die schöne Funktion "> Nul" (ohne die "), damit landen die Anzeigedaten automatisch im Nirvana.

Ich würde das Script so erweitern:

@echo off
echo.
echo ##################################################################
echo ## BACKUP OUTLOOK ##
echo ## ##
echo ##Bitte stellen Sie sicher, dass Ihr Outlook geschlossen ist!! ##
echo ##################################################################
echo Beim Betaetigen mit einer beliebigen Taste, wird die Sicherung durchgefuehrt
echo.
pause
echo ##################################################################
echo Die Datensicherung laeuft jetzt!
echo ##################################################################
call copy "C:\Dokumente und Einstellungen\testperson\Lokale Einstellungen\Anwendungsdaten\Microsoft\Outlook" "C:\temp" /Y > Nul
shutdown /s /f /t 10
@echo on
Corraggiouno
Corraggiouno 30.08.2010 um 08:53:38 Uhr
Goto Top
ok danke für den Tipp; leider ist es so wenn ich das Batch-Skript ausführe, wird zwar eine Sicherung gemacht, der Rechner wird aber nicht heruntergefahren!
Mr.Floppy2
Mr.Floppy2 30.08.2010 um 09:07:27 Uhr
Goto Top
Schalte mal das echo off am Anfang aus und füge nach dem Shutdown noch ein Pause ein. Jetzt solltest Du sehen ob eine Fehlermeldung erscheint beim Shutdown-Befehl.
Marvin32
Marvin32 30.08.2010 um 09:22:37 Uhr
Goto Top
ersetze mal das "shutdown -s -t" durch "shutdown -s -t 0" dann sollte das klappen.

EDIT: oder eben das "shutdown /s /f /t 10" meines Vorposters.

Gruß Marvin
Biber
Biber 30.08.2010 um 09:54:45 Uhr
Goto Top
Moin alle,

ich bin ja immer ganz begeistert, wenn ich am frühen Montachmorgen schon eine derartige Betriebsamkeit und Geschäftigkeit erlebe...

Aber wäre es für Corraggiouno nicht einfacher, statt der ganzen "Echo on"s und "pause"s als erstes mal testen
a) ob am CMD-Prompt: überhaupt irgendwas passiert , wenn er "shutdown" eingibt (keine Angst, zeigt dann nur die Aufrufparameter)
b) und danach mal "echo hallo hier bin ich nach der CALL COPY-Zeile" in den Batch einbauen anstatt des Shutdown-Aufrufs... nur um mal zu testen, um der Batch diese Zeile überhaupt erreicht.

Ach ja, und probiert doch bitte mal diese "Codetags" aus... die werten den Schnipsel optisch auf.

Grüße
Biber
bastla
bastla 30.08.2010 um 10:17:13 Uhr
Goto Top
a) ob am CMD-Prompt: überhaupt irgendwas passiert , wenn er "shutdown" eingibt (keine Angst, zeigt dann nur die Aufrufparameter)
... und falls ja, ob der den Befehl / den Batch ausführende User (auch wenn die Meldung lautet: "Der Client besitzt ein erforderliches Recht nicht.") überhaupt das Recht hat, den Rechner per "shutdown" herunterzufahren - dazu dann doch den gesamten Befehl (mit zB einer Verzögerung von 60 statt 10 Sekunden, sodass im Fall des Falles noch mit "shutdown -a" abgebrochen werden kann) testen ...
Noch als Anmerkung: Ein in einem Batch ausgeführter "copy"-Befehl überschreibt auch ohne den Schalter "/Y" ...

Grüße
bastla
Biber
Biber 30.08.2010 um 11:15:48 Uhr
Goto Top
Na ja, bastla,

zu den 10 Sekunden habe auch erst überlegt, ob ich dazu was sagen sollte....

Aber ich dachte dann: Hey, vielleicht soll es ja eine Überraschung für Corraggiounos UserInnern werden...

Er weist ja vor der Aufforderung zum Tastendruck mit keiner Silbe auf ein Herunterfahren hin und es soll ja auch nur Outlook geschlossen werden.

Die paar offenen Excel- und Worddateien, das geht ja ratzfatz...müssen sich die DAUs eben mal ein bisschen schneller bewegen als sonst...

Grüße
Biber
86263
86263 30.08.2010 um 12:33:20 Uhr
Goto Top
@to:
kurze Frage: wenn du schon als Überschrift Xcopy silent ausführen schreibst, warum benutzt du diesen befehl dann nicht ???
Da gibt es einen wunderbaren Parameter, der silent kopiert.

Außerdem solltest du auch an Errorhandling denken.

MfG DB
Corraggiouno
Corraggiouno 30.08.2010 um 13:17:38 Uhr
Goto Top
wow, vielen dank für eure Tipps; klar die anderen anwendungen sollte vielleicht auch noch geschlossen werden
ja, genau wo definiere ich das silent bzw. an welcher Stelle?
86263
86263 30.08.2010 um 13:25:17 Uhr
Goto Top
Zitat von @Corraggiouno:
ja, genau wo definiere ich das silent bzw. an welcher Stelle?

xcopy /q //Pfad//

Was passiert denn, wenn Outlook noch geöffnet ist ??? face-wink
bastla
bastla 30.08.2010, aktualisiert am 18.10.2012 um 18:43:18 Uhr
Goto Top
ja, genau wo definiere ich das silent bzw. an welcher Stelle?
Wie bei Mr. Floppys Vorschlag gezeigt, kannst auch einfach ein ">nul" am Ende anfügen (gilt auch für andere Befehle, deren Ausgabe Du nicht anzeigen lassen willst) - den Mehrverbrauch dafür bringst Du dann locker wieder ein, indem Du das "call" vorweg einsparst face-wink ...

Grüße
bastla

[Edit] @Biber
Chic, das neue Avatar.
Gebe ich gerne weiter (hat meine Tochter gebastelt) ... face-smile
Geht aber ziemlich in die Breite unterhalb der Gürtellinie...face-wink
Wenn's nur auf unterhalb beschränkt wäre ... face-wink
..... nu aber rennt
Lass Dir ruhig Zeit - so schnell bin ich nimmer (zu Fuß) ...
[/Edit]
Biber
Biber 30.08.2010 um 14:34:58 Uhr
Goto Top
Moin DGzRSBorkum,

Zitat von @86263:
Was passiert denn, wenn Outlook noch geöffnet ist ??? face-wink
Dann wird der DAU verzweifelt versuchen, diese Fehlermeldung abzuPrintScreenen, während der Computer-Countdown von 3 auf 2 auf 1 herunterzählt...
Es sei denn, der Plan B mit dem "Shutdown /s /f /t 0" wird umgesetzt... dann zählt ja nix mehr... *gg

--> eine (von Outlook) geöffnete PST-Datei wird durchaus kopiert in all ihrer epischen Breite... am Ende kommt dann allerdings die Meldung "Datei konnte nicht kopiert werden" und du hast (gatesseidank ja nur im %temp%-Verzeichnis ein paar weitere 100te MByte zugemüllt.)

@bastla
Chic, das neue Avatar.
Geht aber ziemlich in die Breite unterhalb der Gürtellinie...face-wink ..... nu aber rennt

Grüße
Biber
pieh-ejdsch
pieh-ejdsch 30.08.2010 um 19:26:52 Uhr
Goto Top
moin zusamm,

--> eine (von Outlook) geöffnete PST-Datei wird durchaus kopiert in all ihrer epischen Breite... am Ende kommt dann allerdings die Meldung "Datei konnte nicht kopiert werden" und du hast (gatesseidank ja nur im %temp%-Verzeichnis ein paar weitere 100te MByte zugemüllt.)

anstatt Zeile 05 eventuell sowas einstreuen
:test
tasklist /fi "imagename eq outlook.exe"|findstr outlook.exe>nul||(echo ##Bitte schliessen Sie Ihr Outlook! ##&goto :test)  

Gruß Phil
Biber
Biber 30.08.2010 um 21:12:09 Uhr
Goto Top
Also nee, pieh-ejdsch,

okay, handwerklich wie gewohnt sauber ...

aber jetzt lass uns doch mal zusammenfassen... mal ohne Codetags [Edit halt ich nicht durch /]
, und den ganzen Füllkleister lass ich mal raus.
Dann ist der gemeinschaftlich entwickelte Plan jetzt mittlerweile

1) irgendwie irgendwann startet plötzlich ein Batch bei irgendjemand...

2) Dieser Batch sagt höflich, aber bestimmt...
..
echo ## BACKUP OUTLOOK ##
echo ##Bitte stellen Sie sicher, dass Ihr Outlook geschlossen ist!! ##
..
echo Beim Betaetigen mit einer beliebigen Taste, wird die Sicherung durchgefuehrt

pause

Der Benutzer hat hier also nur die Chance, "Ja" oder "Ja" zu sagen... fast schon Glück, wenn er es gar nicht mitbekommt,
weil er grad im Jungenswaschraum ist.... dann haben Excel und Word noch Zeit zum Auto-Speichern.

Wenn Corraggiouno diese Batch-Opfer mit "Sie" anredet, dann war er mit denen noch nicht so oft zelten und weiss nicht, wie die so drauf sind.
Wenn es doch nur um eine ver###te Outlook-Kommste-heute-mittag-mit-in-die-Kantine?-Mailsicherung geht bei wildfremden Leuten,
dann könnte doch auch ergebnisoffen angeboten werden:

...
echo In Ihrem eigenen Interesse sollte ihr Mailgeraffel mal gesichert werden
echo Und dann ist Sabbat und PC wird runtergefahren. Schicht im Schacht.
echo Wenn Sie aber noch etwas Dienstliches machen wollen, drücken Sie "N" für "nich' jezz bitte!"
Echo.
Set /p "isnWeichei=beliebige Taste für Sichern ,  N für Nicht heute "
If /i "%isnWeichei%"=="n" goto :eof
echo 
echo ##Bitte stellen Sie sicher, dass Ihr Outlook geschlossen ist!! ##
pause
REM Und JETZT wäre ein tasklist/taskkill-Abschiessen akzeptabel... zwei Chancen hatte der DAU
copy "C:\Dokumente und Einstellungen\testperson\Lokale Einstellungen\Anwendungsdaten\Microsoft\Outlook" "C:\temp" >nul 
REM ob es geklappt hat oder nicht sieht der DAU, denn Fehlermeldungen hab ich nicht mit "2>nul" weggeschmolzen.
Shutdown ..... /t:60
REM dann kann noch eine Minute alle Panikknöpfe versuchen... und ich stell das Video bei YouTube ein *gg

So in etwa wäre ein tolerierbarer Batchprozess unter nicht-mobbenden Kollegen face-wink

Grüße
Biber
Corraggiouno
Corraggiouno 31.08.2010 um 11:47:44 Uhr
Goto Top
ok, also meine letzten Zeilen meines batch-scrites sind folgende

call copy "C:\Dokumente und Einstellungen\jaki\Lokale Einstellungen\Anwendungsdaten\Microsoft\Outlook" "E:\daten\outlook_sicherung" /Y
nul
shutdown -s -f -t 10

@echo on

Ich habe den shutdown befehl direkt in der console ausgeführt; da funktioniert das Herunterfahren; nicht aber beim Ausführen des Batch-Skriptes. Kann mir jemand sagen, wo mein Fehler liegt?
Corraggiouno
Corraggiouno 31.08.2010 um 13:26:43 Uhr
Goto Top
also ich habe gerade festgestellt, wenn ich nur den shutdown befehl ohne den xcopy befehl definiere, dann wird der Rechner heruntergefahren.
Kann mir jemand sagen woran das liegt?

ich hätte schon sehr gerne das zuvor eine Sicherung gemacht wird und anschließend der Rechner herunterfährt.
Biber
Biber 31.08.2010 um 14:19:15 Uhr
Goto Top
Moin Corraggiouno,

Zitat von @Biber am 30.08.2010, 09:54:45 Uhr :
Aber wäre es [...] nicht einfacher [..] mal zu testen
a) ob am CMD-Prompt: überhaupt irgendwas passiert , wenn er "shutdown" eingibt
b) und danach mal "echo hallo hier bin ich nach der CALL COPY-Zeile" in den Batch einbauen anstatt des
Shutdown-Aufrufs... nur um mal zu testen, um der Batch diese Zeile überhaupt erreicht.

Punkt a hast du doch nun getestet...was ist mit Punkt b?
Wird die Zeile mit dem Shutdown-Aufruf jemals erreicht?

Ausserdem ist es etwas verwirrend, wenn wir immer abwechselnd von einer Arbeitszeile "copy mailgelumpe nachziel"/"call copy mailgelumpe nachziel"/"XCopy mailgelumpe nachziel" ausgehen. Was ist denn davon in engerer Wahl?

Grüße
Biber
Corraggiouno
Corraggiouno 01.09.2010 um 09:15:29 Uhr
Goto Top
ok, mein batch script lautet wie folgt:

@echo off
echo.
echo ##################################################################
echo ## BACKUP OUTLOOK ##
echo ## ##
echo ##Bitte stellen Sie sicher, dass Ihr Outlook geschlossen ist!! ##
echo ##################################################################
echo.
echo Beim Betaetigen mit einer beliebigen Taste, wird die Sicherung durchgefuehrt
echo.
pause
echo
echo #########################################
echo Die Datensicherung läuft.................
echo #########################################
call copy "C:\Programme\WinRAR" "D:\temp" /Y
echo hallo das Kopieren funktioniert
REM > nul
REM shutdown -s -f -t 10
@echo on


Ich habe nun ein echo nach dem Kopieren eingebaut und festgestellt das das echo einfach ingnoriert bzw. nicht ausgeführt wird
Corraggiouno
Corraggiouno 01.09.2010 um 09:56:43 Uhr
Goto Top
ok; das mit dem ""echo hallo das Kopieren funktioniert"" doch. Wenn ich statt dem echo Befehl den ""shutdown -s -f -t 10"" einfüge, dann beginnt das Batch-Script von neuem; also ich hab sozusagen eine Endlosschleife drin.
Biber
Biber 01.09.2010 um 10:10:34 Uhr
Goto Top
Moin Corraggio1,

wenn die Zeile unmittelbar nach dem Aufruf "CALL COPY whatever" nicht erreicht wird, dann

gibt es bei dir entweder ein CALL.bat/CALL.cmd oder ein COPY.bat/COPY.cmd, was unplanmäßig gefunden und ausgeführt wird.


-> das CALL kannst du aber auch ohnehin weglassen, das hat soviel Nutzwert wie die FDP. Hat aber auch schon bastla vor Wocchen geschrieben. Also das mit dem Call-Einsparen.
-> und wenn bei dir eine ausführbare Datei Copy.bat/cmd/exe rumliegt, dann solltest du diese ohnehin löschen oder löschen.

Edit & Update.

Dann heisst dein Batchskript (oder ein anderes vorhandenes) "Shutdown.bat" oder "Shutdown.cmd".
Benenne es um, z.B. in asdfgearhgrfölkavrrg.bat oder kjsadfgasuor.cmd, dann läuft es.

P.S. Deine Codeformatierung ist auch hybsch... magst du trotzdem unsere vielleicht langweiliger wirkenden Code-Tags wie in der Formatierungshilfe beschrieben verwenden?

Grüße
Biber
Corraggiouno
Corraggiouno 01.09.2010 um 10:19:40 Uhr
Goto Top
mmh; wenn ich ein echo nach der copy zeile einbaue wird das echo ja ausgegeben; nur wenn ich ein shutdown definiere, dann wird eine Endlosschleife des copy befehls ausgeführt.............oh sorry, wegen der Formatierung
Corraggiouno
Corraggiouno 01.09.2010 um 10:26:29 Uhr
Goto Top
ok, habe die datei umbenannt und es funktioniert; wunderbar face-smile vielen vielen dank; aber warum darf die Datei nicht shutdown.bat heißen?
bastla
bastla 01.09.2010 um 10:56:42 Uhr
Goto Top
Hallo Corraggiouno!
aber warum darf die Datei nicht shutdown.bat heißen?
Damit nicht genau das passiert, was passiert ist ... face-wink

Solange Du nicht im Batch
shutdown.exe -s -f -t 10
schreibst, nimmt (vereinfacht gesagt) der Batch das erstbeste, was sich mit "shutdown" starten lässt - und das ist, da im aktuellen Verzeichnis, nun mal Dein Batch selbst ...

Grüße
bastla
Biber
Biber 01.09.2010 um 13:17:38 Uhr
Goto Top
Moin Corraggio1,

aber warum darf die Datei nicht shutdown.bat heißen?
Und ergänzend zu bastla: "nimmt das erstbeste" bedeutet ganz pingelig ausgedrückt...

Aus der Umgebungsvariablen %pathext%, deren Inhalt du dir so anzeigen lassen kannst am CMD-Prompt
[1. Zeile eingeben...die zweite kommt als Antwort]
set pathext
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH

diese dort aufgeführten Dateiendungen gelten auf meinen als "ausführbare Dateien"
--> die können OHNE explizite Angabe der Endung aufgerufen werden.

ABER: eine ausführbare Datei "shutdown" wird nicht in der dort stehenden Rehenfolge gesucht, also so
shutdown.COM;.->shutdown.EXE;.->shutdown.BAT;...... CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH

sondern alphabetisch
shutdown.BAT;.->shutdown.CMD;.->shutdown.COM;...... EXE;.;.JS;.JSE; VBS;.VBE.WSF;.WSH

Also dummerweise zuerst nach Batchdateien dieses Namens.

Das war der Poller, gegen den du gerannt bist.

Diese Redmonder PraktikantInnen muss man/frau doch einfach liebhaben, hmm?

Grüße
Biber
bastla
bastla 01.09.2010 um 13:33:03 Uhr
Goto Top
... wobei zusätzlich auch noch der Speicherort berücksichtigt wird - eine "MachWas.vbs" im aktuellen Verzeichnis wird vor einer "MachWas.exe" in "C:\Windows\System32" und diese vor einer "MachWas.bat" in "C:\Windows" ausgeführt, wenn in %PATH% defaultmäßig "C:\Windows\System32" vor "C:\Windows" eingetragen ist ...

Grüße
bastla
Biber
Biber 01.09.2010 um 14:02:50 Uhr
Goto Top
...also kurz zusammengefasst:
wenn du deine Bätchdateien agagjraarijaejreijhe.bat oder asgaghdqewqweqwjxij.cmd nennst, bist du eigentlich immer auf der sicheren Seite.

Grüße
Biber
geTuemII
geTuemII 01.09.2010 um 15:26:44 Uhr
Goto Top
Zitat von @Biber:
...also kurz zusammengefasst:
wenn du deine Bätchdateien agagjraarijaejreijhe.bat oder asgaghdqewqweqwjxij.cmd nennst, bist du eigentlich immer auf der sicheren Seite.
...außer natürlich, du möchtest schon beim Lesen des Dateinamens eine ungefähre Vorstellung davon entwickeln, was das Bätchelchen tut.

@bastla:
Hybsch, dein neuer Avatar. Aber ein Problem habe ich damit: jetzt muß ich mich in meinem Alter noch umgewöhnen face-smile

Meinjanur, geTuemII
bastla
bastla 01.09.2010 um 15:48:40 Uhr
Goto Top
Hallo geTuemII!

Schön, mal wieder von Dir zu lesen - und dann auch gleich noch ein Kompliment (das ich aber sehr gerne an die Urheberin des Bildchens, meine Tochter, weiterreiche) face-smile ...

Hinsichtlich der Umgewöhnung ist es ja bei mir selbst nicht anders - ich finde meine Kommentare auch erst beim zweiten Hinschauen face-wink; aber, wie die Erfahrung mit Bibers Avatar-Metamorphose lehrt: nach 5 Monaten geht's dann schon ...

Grüße
bastla
Biber
Biber 01.09.2010 um 17:25:03 Uhr
Goto Top
Moin Tuemeli,

ich freu mich auch, dich mal wieder (in den etwas abgelegeneren Seitenarmen dieses Forums) zu lesen.
Und wenn ich mal ein Kompliment machen darf - dein Avatar sieht keinen einzigen Tag älter aus als damals im letzten Jahrtausend.

Wie schafft ihr Administrinen das bloss?

Grüße
Biber
-------------------------------------------------------------------------------------------------flitzzzzzzzzzzzzzzzzzzzzzzzzzzzz ------->
Corraggiouno
Corraggiouno 02.09.2010 um 08:31:33 Uhr
Goto Top
hätte da noch ne letzte Frage:
Was muss ich definieren, wenn ich zusätzlich zu der Outlook.pst die Eigenen Dateien sichern möchte? Also ich habe ja dann zwei Quell und zwei Zielverzeichnisse.
Corraggiouno
Corraggiouno 03.09.2010 um 08:02:01 Uhr
Goto Top
hi,

benötige nochmal eure Hilfe; mein aktuelles Batch-Skript

@echo off
echo.
echo ##################################################################
echo ## ##
echo ## BACKUP ##
echo ## ##
echo ##################################################################
echo.
echo Bitte stellen Sie sicher, dass alle Anwendungen geschlossen sind!!
echo.
echo .................es wird in wenigen Sekunden eine Datensicherung
echo gestartet..............
echo.
ping /n 10 localhost >nul
echo.
echo.
echo #########################################
echo Die Datensicherung laeuft.................
echo #########################################
echo.
xcopy "C:\Dokumente und Einstellungen\testperson\Lokale Einstellungen\Anwendungsdaten\Microsoft\Outlook" "E:\daten\outlook_sicherung" /Y
xcopy "C:\lieferanten" "E:\daten\lieferanten" /E /Y
echo.
echo.
echo Die Datensicherung wurde abgeschlossen.
echo #########################################
echo Ihr Sytem wird nun heruntergefahren
echo #########################################
REM shutdown -i -s -f -t 40


beim zweiten xcopy-befehl wird gefragt ob das ein Verzeichnis oder Datei ist; ich gebe ein V für Verzeichnis ein; dann wird der Vorgang abgebrochen
Kann mir jemand einen Tipp geben?
bastla
bastla 03.09.2010 um 11:04:38 Uhr
Goto Top
Hallo Corragiouno!

Vorweg noch ein anderer Tipp (den ich nicht mehr als Bitte formulieren mag): Verwende zum Posten von Batches ""-Formatierung ...
Wenn Du die Zielangabe mit abschließendem "\" schreibst, ist klar dass Du ein Verzeichnis meinst, also:
xcopy "C:\lieferanten" "E:\daten\lieferanten\" /E /Y
Grüße
bastla