Problem mit *.bat

Diskutiere Problem mit *.bat im Programmierung Forum im Bereich Software Forum; Hi, alle Programmierfreaks, die sich in diesem Forum tummeln, werden sich vermutlich fragen, wie man es anstellen kann, mit einer *.bat-Datei...
W

windozer

Threadstarter
Mitglied seit
01.05.2007
Beiträge
212
Alter
40
Hi,

alle Programmierfreaks, die sich in diesem Forum tummeln, werden sich vermutlich fragen, wie man es anstellen kann, mit einer *.bat-Datei Probleme zu bekommen, aber genau so ist es:
Ich hab eine ganz einfache *.bat, die - in mehreren möglichen Kombinationen - CCleaner und jkdefrag startet, Dateien sichert und runterfährt. Soweit die Theorie.
Was passiert, ist folgendes: Wenn ich die *.bat starte, werd ich gefragt, welches Szenario ich haben will und dann, ob ich danach runterfahren will. Unabhängig von meiner Eingabe startet dann jkdefrag und zeitgleich der Countdown zum Runterfahren. Das ist natürlich nicht der Sinn der Sache.
Vieleicht kann sich jemand einfach per PN bei mir melden, ich schick ihm dann gern mal den kompletten Code meiner *.bat - ich will den Post hier nicht damit überladen.
Ich selbst hab nicht gesehen, woran es liegen könnte, für mich sieht alles ok aus.
Vielen Dank!
Gruß,

Windozer
 
Bullayer

Bullayer

Schwergewicht
Mitglied seit
19.07.2006
Beiträge
24.153
Standort
DE-RLP-COC
Poste den Code bitte.
 
S

SteinBeiser

Mitglied seit
14.02.2007
Beiträge
74
start "Name des Neuen Fensters" /wait Programm das gestartet werden soll mit parametern
 
S

SteinBeiser

Mitglied seit
14.02.2007
Beiträge
74
Das in "" ist der FensterTitel solte das pro was gestartet wird leerzeichen im namen oder pfad haben und man gibt dieses dann in "" an kommt start durcheinander und setzt dann das prog. was gestarte werden soll als FensterTitel.
 
G

Ghost in the Shell

Gast
Wie schon bereits gesagt ohne konkreten Code werden wir dir leider nicht helfen können.
 
W

windozer

Threadstarter
Mitglied seit
01.05.2007
Beiträge
212
Alter
40
Hi,

danke für die Antworten!
Also gut, dann poste ich hier mal den gesamten Code:

Code:
@echo off
cls

set /P Eingabe=Backup_Hausputz_beides: 
set /P Eingabe2=Ausschalten_j_n:
if %Eingabe% == Backup goto Backup
if %Eingabe% == Hausputz goto Hausputz
if %Eingabe% == beides goto Komplett

:Komplett
REM Zuerst Platte ausmisten !
cmd /C /WAIT "C:\Programme\CCleaner\CCleaner.exe /AUTO"
REM Festplatte defragmentieren
cmd /K /WAIT "C:\Dokumente und Einstellungen\fhofmann\Eigene Dateien\Eigene_Tools\JkDefrag-3.36\jkdefrag.exe C: G:"
REM Jetzt Datensicherung machen (Spiegelung mit Robocopy)
robocopy "C:\Dokumente und Einstellungen\fhofmann\Eigene Dateien\Eigene Videos" "G:\movies" /MOVE
REM Jetzt zweite Datensicherung machen (Firmendaten)
if not exist R:\ echo Der PrivateDisk-Container ist nicht offen
robocopy "C:\Dokumente und Einstellungen\fhofmann" "R:\Full_Backup" /MIR 
if %Eingabe2% == n goto Ende
shutdown /s /f

:Backup
REM Jetzt Datensicherung machen (Spiegelung mit Robocopy)
robocopy "C:\Dokumente und Einstellungen\fhofmann\Eigene Dateien\Eigene Videos" "G:\movies" /MOVE
REM Jetzt zweite Datensicherung machen (Firmendaten)
if not exist R:\ echo Der PrivateDisk-Container ist nicht offen
robocopy "C:\Dokumente und Einstellungen\fhofmann" "R:\Full_Backup" /MIR 
if %Eingabe2% == n goto Ende
shutdown /s /f

:Hausputz
REM Zuerst Platte ausmisten !
cmd /C /WAIT "C:\Programme\CCleaner\CCleaner.exe /AUTO"
REM Festplatte defragmentieren
cmd /K "C:\Dokumente und Einstellungen\fhofmann\Eigene Dateien\Eigene_Tools\JkDefrag-3.36\jkdefrag.exe"
if %Eingabe2% == n goto Ende
shutdown /s /f

:Ende
echo FERTIG
exit
Vielen Dank noch mal!
Gruß,

Windozer
 
G

Ghost in the Shell

Gast
Versuch es mal statt dem "cmd" Befehl den "start" Befehl. cmd ist mir in der Parameterkombination nicht geläufig.

Edit: Kann es sein das du als OS Vista nutzt?
 
W

windozer

Threadstarter
Mitglied seit
01.05.2007
Beiträge
212
Alter
40
Hi Ghost_in_the_Shell,

leider funktioniert es immer noch nicht. Ich hab jetzt in einem Szenario ("Hausputz") noch eine Zeile hinzugefügt, und zwar die folgende:
Code:
start "" "C:\Programme\Eraser\Eraserl.exe" -recycled
Das wurde mir hier im Forum empfohlen (Thread "Kommandozeilen-Schredder"), um die Inhalte des Papierkorbs zu vernichten. Wenn ich jetzt das Szenario "Hausputz" aufrufe, wird unmittelbar diese Zeile ausgeführt, ohne daß die vorherigen Zeilen irgendwie berührt würden.
Gruß,

Windozer
 
G

Ghost in the Shell

Gast
Nunja eigentlich sollte er Code so aussehen:

PHP:
start /wait "C:\Programme\Eraser\Eraserl.exe" -recycled
 
W

windozer

Threadstarter
Mitglied seit
01.05.2007
Beiträge
212
Alter
40
Hi,

vieleicht ist hier noch jemand: Ich hab jetzt mal den Parameter /wait weggelassen, der funzt ja offenbar nicht so ganz. Stattdessen hab ich ein >sleep 20< zwischen die Befehle reingesetzt.
Es funzt aber immer noch nicht so wie es soll. Ich hab jetzt mal folgenden Codeblock ausprobiert:
Code:
:Hausputz
REM Erst die Inhalte des Papierkorbs schreddern
start "" "C:\Programme\Eraser\Eraserl.exe" -recycled
sleep 20
REM Zuerst Platte ausmisten !
start "" "C:\Programme\CCleaner\CCleaner.exe" /AUTO
sleep 20
REM Festplatte defragmentieren
start "" "C:\Dokumente und Einstellungen\fhofmann\Eigene Dateien\Eigene_Tools\JkDefrag-3.36\JkDefrag.exe"
sleep 20
if %Eingabe2% == n goto Ende
shutdown /s /f

:Ende
echo FERTIG
exit
Ich hab angegeben, daß er runterfahren soll (j bei der zweiten Eingabe). Dann hat zwar der Eraser funktioniert (der Papierkorb war leer hat er brav gemeldet), jkdefrag ist auch noch losgegangen, aber zeitgleich auch der Countdown von 30sec fürs Runterfahren. Eigtl soll ja dieser Countdown erst anfangen, wenn jkdefrag fertig ist. Kann mir jemand sagen, wie ich das anstelle?
Danke vielmals!
Gruß,

Windozer
 
Bullayer

Bullayer

Schwergewicht
Mitglied seit
19.07.2006
Beiträge
24.153
Standort
DE-RLP-COC
Nimm mal CALL statt START, dann kannst du auch den Sleep-Befehl weglassen, da die Batch erst nach Beendigung des CALL-Kommandos fortgesetzt wird.
 
W

windozer

Threadstarter
Mitglied seit
01.05.2007
Beiträge
212
Alter
40
Hallo Bullayer,

QUOTE=Bullayer;838258]Nimm mal CALL statt START, dann kannst du auch den Sleep-Befehl weglassen, da die Batch erst nach Beendigung des CALL-Kommandos fortgesetzt wird.[/QUOTE]

leider funktioniert es damit auch nicht ;-) Wenn ich diesen Codeblock wähle und angebe, daß er danach ausschalten soll, kommt sofort der Countdown zum Runterfahren, die anderen zeilen (sind alle mit CALL, die letzte heißt nur >shutdown /s /f<) überspringt er einfach.
Wenn ich den Codeblock anwähle und angebe, daß er danach NICHT ausschalten soll - passiert rein überhaupt gar nichts. die shell geht wieder zu und das war´s.
Gruß,

Windozer
 
Bullayer

Bullayer

Schwergewicht
Mitglied seit
19.07.2006
Beiträge
24.153
Standort
DE-RLP-COC
Starte mal die DosShell und ruf von dort die Batchdatei auf. Nach den einzelnen Call-Befehlen gibst du PAUSE ein. Werden irgendwelche Fehler angezeigt, wie z. Bsp. "Befehl oder Dateiname nicht gefunden"?
 
W

windozer

Threadstarter
Mitglied seit
01.05.2007
Beiträge
212
Alter
40
Hallo Bullayer,

nein, Fehlermeldungen gibt es keine.
Der PAUSE-Befehl wartet doch dann auf einen Tastendruck meinerseits, oder? Ist wahrscheinlich zum Debuggen ganz praktisch.
Um die bat in der Shell aufzurufen, muß ich wahrscheinlich den Pfad und Dateinamen mit Endung angeben?
Gruß,

Windozer

P.S.: Wird eine Weile dauern, bis ich das wieder probieren kann - ist halt mein Büro-Laptop und ich bin ziemlich beschäftigt, kann also nur in der Pause - schwierig, weil ich so viel offen hab - oder abends rumfuhrwerken.
 
Zuletzt bearbeitet:
Bullayer

Bullayer

Schwergewicht
Mitglied seit
19.07.2006
Beiträge
24.153
Standort
DE-RLP-COC
Du wechselst einfach in der Shell in das entsprechende Laufwerk, in dem sich die Batchdatei befindet. Dann nur den Namen ohne Extension eingeben und Return drücken.
 
W

windozer

Threadstarter
Mitglied seit
01.05.2007
Beiträge
212
Alter
40
Hallo Bullayer,

jetzt kommt immer die Ausgabe, der Befehl "" (Parameter, den ich bei START hatte und noch drin hab) sei falsch geschrieben. Der shutdown wird nicht gemacht, weil ich´s diesmal nicht angegeben habe. Ich nehm jetzt mal diesen Parameter raus.
Gruß,

Windozer
 
Bullayer

Bullayer

Schwergewicht
Mitglied seit
19.07.2006
Beiträge
24.153
Standort
DE-RLP-COC
Poste mal die komplette Batchdatei, bitte.
 
W

windozer

Threadstarter
Mitglied seit
01.05.2007
Beiträge
212
Alter
40
Hallo Bullayer,

beim letzten Versuch hat es scheinbar geklappt. Alle Befehle wurden schön hintereinander ausgeführt - erst Eraser, dann CCleaner, dann jkdefrag - aber ich hatte dann noch angegeben, daß er danach runterfahren soll und stattdessen hat jkdefrag "Finished" geschrieben und der Laptop ist bis heut morgen durchgelaufen und hat gewartet, daß ich das mit OK bestätige.
Hier kommt mal die ganze Batch - ich hab den dritten Codeblock ("Hausputz") ausprobiert.
 
W

windozer

Threadstarter
Mitglied seit
01.05.2007
Beiträge
212
Alter
40
Hallo Bullayer,

beim letzten Versuch hat es scheinbar geklappt. Alle Befehle wurden schön hintereinander ausgeführt - erst Eraser, dann CCleaner, dann jkdefrag - aber ich hatte dann noch angegeben, daß er danach runterfahren soll und stattdessen hat jkdefrag "Finished" geschrieben und der Laptop ist bis heut morgen durchgelaufen und hat gewartet, daß ich das mit OK bestätige.
Hier kommt mal die ganze Batch - ich hab den dritten Codeblock ("Hausputz") ausprobiert.

Code:
@echo off
cls

set /P Eingabe=Backup_Hausputz_beides: 
set /P Eingabe2=Ausschalten_j_n:
if %Eingabe% == Backup goto Backup
if %Eingabe% == Hausputz goto Hausputz
if %Eingabe% == beides goto Komplett

:Komplett
REM Erst die Inhalte des Papierkorbs schreddern
start "C:\Programme\Eraser\Eraserl.exe" -recycled
sleep 10
REM Zuerst Platte ausmisten !
start "C:\Programme\CCleaner\CCleaner.exe" /AUTO
sleep 10
REM Festplatte defragmentieren
start "C:\Dokumente und Einstellungen\fhofmann\Eigene Dateien\Eigene_Tools\JkDefrag-3.36\jkdefrag.exe"
sleep 10
REM Jetzt Datensicherung machen (Spiegelung mit Robocopy)
robocopy "C:\Dokumente und Einstellungen\fhofmann\Eigene Dateien\Eigene Videos" "G:\movies" /MOVE
sleep 10
REM Jetzt zweite Datensicherung machen (Firmendaten)
if not exist R:\ echo Der PrivateDisk-Container ist nicht offen
robocopy "C:\Dokumente und Einstellungen\fhofmann" "R:\Full_Backup" /MIR 
sleep 10
if %Eingabe2% == n goto Ende
shutdown /s /f

:Backup
REM Jetzt Datensicherung machen (Spiegelung mit Robocopy)
robocopy "C:\Dokumente und Einstellungen\fhofmann\Eigene Dateien\Eigene Videos" "G:\movies" /MOVE
sleep 10
REM Jetzt zweite Datensicherung machen (Firmendaten)
if not exist R:\ echo Der PrivateDisk-Container ist nicht offen
robocopy "C:\Dokumente und Einstellungen\fhofmann" "R:\Full_Backup" /MIR 
sleep 10
if %Eingabe2% == n goto Ende
shutdown /s /f

:Hausputz
REM Erst die Inhalte des Papierkorbs schreddern
CALL "C:\Programme\Eraser\Eraserl.exe" -recycled
REM Zuerst Platte ausmisten !
CALL "C:\Programme\CCleaner\CCleaner.exe" /AUTO
REM Festplatte defragmentieren
CALL "C:\Dokumente und Einstellungen\fhofmann\Eigene Dateien\Eigene_Tools\JkDefrag-3.36\JkDefrag.exe"
if %Eingabe2% == n goto Ende
shutdown /s /f

:Ende
echo FERTIG
exit
 
Thema:

Problem mit *.bat

Problem mit *.bat - Ähnliche Themen

  • Ethernet und Flugzeugmodus Problem

    Ethernet und Flugzeugmodus Problem: Hallo zusammen! Ich habe seit heute Morgen das Problem, dass mein PC keine Verbindung mehr mit meiner Breitbandinternetverbindung herstellt und...
  • Ein weiteres Windows 10 Update-Problem

    Ein weiteres Windows 10 Update-Problem: Hallo allerseits, es gab schon sehr viele Äußerungen wegen Problemen bei Updates unter Windows 10. Leider unterscheiden sie sich alle von...
  • .bat file problem nach update

    .bat file problem nach update: Nach dem letzten Update von WIN8.1 PRO lassen sich .BAT Files nicht mehr richtig starten. Gemerkt habe ich dass, da bestimmte Programme (z.B...
  • Schon wieder Problem mit *.bat

    Schon wieder Problem mit *.bat: Hallo, ich hatte ja damals schon recht lang rumgetan und hier im Forum viel Hilfestellung gekriegt, um eine bat-Datei zu schreiben, die...
  • [gelöst] Problem mit bat-Datei

    [gelöst] Problem mit bat-Datei: Ich habe folegende bat-Datei geschrieben: xcopy /H /R /D /E "S:\hnsky" "S:\Kopie von hnsky" Die Ordner sind auch vorhanden, aber wenn ich...
  • Ähnliche Themen

    • Ethernet und Flugzeugmodus Problem

      Ethernet und Flugzeugmodus Problem: Hallo zusammen! Ich habe seit heute Morgen das Problem, dass mein PC keine Verbindung mehr mit meiner Breitbandinternetverbindung herstellt und...
    • Ein weiteres Windows 10 Update-Problem

      Ein weiteres Windows 10 Update-Problem: Hallo allerseits, es gab schon sehr viele Äußerungen wegen Problemen bei Updates unter Windows 10. Leider unterscheiden sie sich alle von...
    • .bat file problem nach update

      .bat file problem nach update: Nach dem letzten Update von WIN8.1 PRO lassen sich .BAT Files nicht mehr richtig starten. Gemerkt habe ich dass, da bestimmte Programme (z.B...
    • Schon wieder Problem mit *.bat

      Schon wieder Problem mit *.bat: Hallo, ich hatte ja damals schon recht lang rumgetan und hier im Forum viel Hilfestellung gekriegt, um eine bat-Datei zu schreiben, die...
    • [gelöst] Problem mit bat-Datei

      [gelöst] Problem mit bat-Datei: Ich habe folegende bat-Datei geschrieben: xcopy /H /R /D /E "S:\hnsky" "S:\Kopie von hnsky" Die Ordner sind auch vorhanden, aber wenn ich...
    Oben