Die Befehlszeilen-PAUSE-Funktion funktioniert nicht

2788
user232864

Ich habe ein Problem mit einem Batch-Dateibefehl - wenn ich das Programm starte, habe ich am Ende der Batch-Datei einen "PAUSE" -Befehl, das Befehlsfenster wird jedoch sofort automatisch geschlossen, zu schnell, als dass ich es sehen könnte Ergebnisse. Gibt es eine andere Möglichkeit, das Schließen des Befehlsfensters zu verhindern oder die Ergebnisse irgendwie zu erhalten? dh kann eine gedruckte Version gesendet, irgendwo eingefügt werden?

Hintergrund - Ich kenne mich mit Kommandozeilen aus, also bitte, wenn Sie können, jede Antwort bitte stumm zu den Erklärungen für Anfänger. Ich versuche letztendlich, Versionen einer MS Project-Datei zu ermitteln, und habe diese Website-Anweisungen genau verwendet / befolgt, jedoch werden die Ergebnisse für mich nicht angezeigt - das Befehlsfenster verschwindet sofort:

Microsoft-Website, die ich für Anweisungen verwendet habe: Eine einfache Methode zum Ermitteln der Version einer MPP-Datei (MS Project-Plandatei)

Der Text / die Befehle in der Batchdatei:

@ECHO OFF  REM Version.bat  ECHO Filename: %1  ECHO.  ECHO -- CHECK FOR PROJECT VERSION --  strings %1 | findstr "[0-9],.,....,...." 2>NUL  ECHO Check the following list for the first one or two digits of the string above (xx,.,....,....)  ECHO List of xx (Product Name): 8 (98), 9 (2000), 10 (2002), 11 (2003), 12 (2007), 14 (2010)  ECHO.   ECHO -- CHECK FOR MPP FILE VERSION --  strings %1 | findstr ".MPP" 2>NUL  ECHO Check the following list for the digit(s) at the end of the string above (...MPPxx)  ECHO List of xx (Product Name): 8 (98), 9 (2000/2002/2003), 12 (2007), 14 (2010)  ECHO.  PAUSE 
4
Welches Betriebssystem verwendest du? Ich vermute, es ist ein Geschmack von Fenstern, aber welches? terdon vor 10 Jahren 0
Ich verwende Windows XP - Version 2002, Service Pack 3 user232864 vor 10 Jahren 1
Veröffentlichen Sie den Inhalt der Stapeldatei Travis vor 10 Jahren 0
Der Inhalt der Batch-Datei ist wie im Link beschrieben beschrieben (dies muss in 2 Kommentaren erfolgen, da die maximale Anzahl an Zeichen überschritten wird): @ECHO OFF REM Version.bat ECHO Dateiname:% 1 ECHO. ECHO - CHECK FOR PROJECT VERSION - Zeichenfolgen% 1 | findstr "[0-9],., ...., ...." 2> NUL ECHO Überprüfen Sie die folgende Liste auf die ersten ein oder zwei Ziffern der obigen Zeichenfolge (xx,., ....,.,. ...) ECHO-Liste von xx (Produktname): 8 (98), 9 (2000), 10 (2002), 11 user232864 vor 10 Jahren 0
(2003), 12 (2007), 14 (2010) ECHO. ECHO - CHECK FOR MPP DATEI VERSION - Zeichenfolgen% 1 | findstr ".MPP" 2> NUL ECHO Überprüfen Sie die folgende Liste auf die Stelle (n) am Ende der Zeichenfolge oben (... MPPxx). ECHO Liste von xx (Produktname): 8 (98), 9 (2000 / 2002/2003), 12 (2007), 14 (2010) ECHO. PAUSE user232864 vor 10 Jahren 0
Ich frage die "dumme Frage" - sind Sie _sure_, dass Ihre Batchdatei überhaupt läuft? Fügen Sie eine Befehlszeile wie "COPY NUL C: \ TEMP \ TESTFILE" hinzu (geben Sie ein Verzeichnis an, für das Sie Schreibberechtigung haben, und eine Datei, die nicht vorhanden ist) zu Ihrem Skript (z. B. direkt vor PAUSE) `), führen Sie es aus und prüfen Sie, ob die Datei erstellt wurde. Wenn ja, ignorieren Sie diesen Kommentar und konzentrieren Sie sich auf die anderen Antworten. Wenn die Datei *** nicht erstellt wurde, verschieben Sie den Befehl `COPY` an den Anfang des Skripts. Wenn die Datei immer noch nicht erstellt wird: schlechte Nachrichten; Sie führen nicht einmal Ihre Batch-Datei aus. Scott vor 10 Jahren 0
Scott - Danke für die Informationen oben - alles gut zu wissen. Es stellte sich heraus, dass ich das "Zeichenketten" -Programm nicht installiert hatte, was erforderlich war. Danke für die Hilfe user232864 vor 10 Jahren 1

3 Antworten auf die Frage

1
STTR

Warten

sec:

PING 127.0.0.1 -n <sec> >NUL 

Warten Sie 10 Sekunden:

PING 127.0.0.1 -n 10 >NUL 

Warten Sie 10 Sekunden:

powershell measure-command ^| select TotalSeconds ^| Ft -Au 

Warten Sie 1/4 Sekunden oder 250 Millisekunden:

powershell measure-command ^| select TotalMilliseconds ^| Ft -Au 

Pause

Power Shell:

powershell $host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown') 

var2:

powershell $host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown') >NUL 

var3:

powershell cmd /c pause ^| out-null 

var4:

powershell [Console]::ReadKey()>NUL 

var5:

powershell sleep 

Befehl pausieren, batch / cmd:

cmd /c pause 
Leider bekomme ich dasselbe Ergebnis - verschwindet immer noch sofort user232864 vor 10 Jahren 2
@ user232864 test powershell befehl und was macht "PING 127.0.0.1 -n 10" in cmd? An Ihrem Windows XP SP3? STTR vor 10 Jahren 0
Danke, probierte die Powershell am Ende der Batchdatei aus, gleiches Ergebnis - das Befehlsfenster öffnet sich für eine Sekunde und verschwindet dann wie zuvor. Nicht sicher, ob ich die Frage "An Ihrem Windows XP SP3?" user232864 vor 10 Jahren 2
@ user232864 Aus Ihrer Frage wurde mir klar, dass Sie nuzhena verzögern und nicht pausieren. Jetzt hinzufügen) STTR vor 10 Jahren 0
Vielen Dank für die Informationen oben - alles gut zu wissen. Es stellte sich heraus, dass ich das "Zeichenketten" -Programm nicht installiert hatte, was erforderlich war. Danke für die Hilfe. user232864 vor 10 Jahren 2
1
James P

Ich vermute, die Datei hat einen Fehler. Versuchen Sie, die Batchdatei in einem vorhandenen Befehlsfenster aufzurufen, um die Nachricht anzuzeigen.

Das Problem ist höchstwahrscheinlich, dass das Skript ein externes Programm mit dem Namen "strings" aufruft, das Sie dem Dokument entnehmen können, das Sie mit diesem Dokument verbunden haben . Damit die Batchdatei sie finden kann, sollten Sie sie in dem Verzeichnis installieren, in dem Sie sie ausführen. Andernfalls müssen Sie die Systemumgebungsvariable PATH ändern oder in ein Systemverzeichnis einfügen.

Danke - das hat funktioniert. Ich kann nicht glauben, dass ich das "Saiten" -Programm verpasst habe. Einmal heruntergeladen, hat es perfekt funktioniert. Vielen Dank! user232864 vor 10 Jahren 0
0
kStarbe

Wenn der vorherige Befehl eine Batchdatei ist, wird der Rest Ihrer Datei nicht ausgeführt. versuchen Sie einen Anruf vor den vorherigen Befehlen /

Sie wiederholen die andere Antwort yass vor 6 Jahren 1