[BAT] Nicht schliessen

sa322

Stammgast
Also ich will mir eine Batch machen:
color 02
title xxx
ping -t 1xx.xxx.x.x
Das problem ist nun, wenn ich ctrl + c drücke, fragt er ob ich den Batchvorgang abbrechen will. Bei Ja oder nein schliesst er sie dann. Kann ich das verhindern, also auch bei anderen Befehlen
color 02
title xxx
, so dass das Fenster offenbleibt mit Titel und Farbe und ich so Befehle eingeben kann?
 
Das funktioniert mit Batch leider nicht.

Batch Dateien sind ansich isolierte Skripts, welche jedoch die öffentlichen Kommandozeilenbefehle ausführen, aber bei einem Abbruch nicht in den "öffentlichen" Modus wechseln, sondern sich selbst abschliessen. Das kann man zwar bremsen mit pause, aber man kann anschliessend nicht weiterarbeiten.

Wofür möchtest du das denn machen?
 
A

abu

Guest
@sa322: Ob das Fenster nach dem Beenden des Batch offen bleibt, hängt davon ab, wie du das Ganze gestartet hast.

Code:
cmd  /k deine_batch_datei
 
Zuletzt bearbeitet:

pagefault

Inaktiv
Und was soll ich mit cmd /k deine_Batch_Datei? Als Name der Datei?
Nein, du sollst deine Batchdatei mit vorgeschaltetem cmd /k aufrufen, weil dann die Eingabeaufforderung offen bleibt (und nicht gleich wieder zuschnappt nach Ctrl-C, wie es jetzt bei dir der Fall ist)

Siehe auch on-line Hilfe:
Code:
C:\>cmd /?
Startet eine neue Instanz des Windows 2000-Befehlsinterpreters.

CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]
    [[/S] [/C | /K] Zeichenfolge]

/C      Führt den Befehl in der Zeichenfolge aus und endet dann.
[b]/K[/b]      Führt den Befehl in der Zeichenfolge aus [b]und endet dann nicht[/b].
/S      Bestimmt Behandlung von Zeichenfolgen nach /C oder /K (siehe unten).
/Q      Schaltet die Befehlsanzeige aus.
/D      Deaktiviert die Ausführung von AutoRun-Befehlen von der Registrierung.
.... noch viel mehr Text hier ....
 
A

abu

Guest
@pagefault: Ich danke dir, ganz so weit wollte ich natürlich nicht gehen. Ein bisschen nachdenken bzw. sich bemühen sollte man von einem Fragesteller schon erwarten dürfen. ;)
 

maedi100

Stammgast
du könntest auch im Batch den CMD Callen:

Code:
@echo off
color 02
title XXX
ping 127.0.0.1
call cmd
Erklärung zur Call Funktion
Code:
Ruft eine Batchdatei von einer anderen aus auf.

CALL [Laufwerk:][Pfad]Dateiname [Parameter]

  Parameter          Bezeichnet beliebige Angaben in der Befehlszeile, die von
                     dem aufgerufenen Batchprogramm benötigt werden.

Wenn die Befehlserweiterungen aktiviert sind, wird der CALL-Befehl
folgendermaßen verändert:

Der CALL-Befehl akzeptiert jetzt Marken als Sprungziele.
Die Syntax ist:

    CALL :Marke Argumente

Mit den angegebenen Argumenten wird ein neuer Batchkontext erstellt und
die Programmausführung hinter der angegebenen Marke fortgesetzt. Um die Batch-
datei dort tatsächlich zu verlassen, muss man sie zweimal beenden. Beim ersten
Erreichen des Endes wird das Programm zu dem Befehl hinter dem CALL-Aufruf
zurückkehren. Beim zweiten Mal wird dann die Batchdatei beendet. Geben Sie
GOTO /? ein, um weitere Informationen über die Erweiterung von GOTO :EOF zu
erhalten, die es Ihnen ermöglicht, eine Batchdatei zu verlassen.

Zusätzlich hat sich die Auflösung von Referenzen auf Argumente in Batchdateien
(%0, %1 etc.) wie folgt geändert:

    %* in einer Batchdatei bezieht sich auf alle Argumente (z. B. %1 %2
        %3 %4 %5 ...).

    Die Ersetzung von Batchparametern (%n) wurde erweitert. Sie können
    jetzt folgende Syntax verwenden:

        %~1         - Expandiert %1 und entfernt umschließende
                      Anführungszeichen (").
        %~f1        - Expandiert %1 zu einem vollständigen Dateinamen.
        %~d1        - erstellt nur den Laufwerkbuchstaben von %1.
        %~p1        - erstellt nur den Pfad von %1.
        %~n1        - erstellt nur den Dateinamen von %1.
        %~x1        - erstellt nur die Dateierweiterung von %1.
        %~s1        - Der erstellte Pfad enthält nur kurze Namen.
        %~a1        - Expandiert %1 zu Dateiattributen.
        %~t1        - Expandiert %1 zu Datum/Zeit der Datei.
        %~z1        - Expandiert %1 zur Größe der Datei.
        %~$PATH:1   - Durchsucht die in der PATH-Umgebungsvariablen
                      angegebenen Verzeichnisse und expandiert die erste
                      gefundene Datei %1 zu dem vollständigen Dateinamen.
                      Wenn der Name der Umgebungsvariablen nicht definiert
                      ist oder diese Datei bei der Suche nicht gefunden
                      wurde, wird dieser Parameter zu einer leeren
                      Zeichenfolge expandiert.

    Diese Parameter können auch miteinander kombiniert werden:

        %~dp1       - erstellt den Laufwerkbuchstaben und Pfad von %1.
        %~nx1       - erstellt den Dateinamen und die Dateierweiterung
                       von %1.
        %~dp$PATH:1 - Durchsucht die in der PATH-Umgebungsvariablen ange-
                       gebenen Verzeichnisse nach %1 und erstellt den Lauf-
                       werkbuchstaben und Pfad der ersten gefundenen Datei.
        %~ftza1     - erstellt eine DIR-ähnliche Ausgabezeile von %1.

    In den angegebenen Beispielen können %1 und PATH durch andere gültige
    Werte ersetzt werden. Die Syntax von %~ wird durch eine gültige Argument-
    anzahl beendet. %~ darf nicht mit %* verwendet werden.

du könntest natürlich auch noch eigen PATH Variablen setzen...
 
Oben