Es gibt zwei Möglichkeiten.
-
Sie haben vergessen, die %id%
で、その jstack
anrufen.
jstack %id% > jstack.txt
Die gesamte korrekte Batch-Datei sollte also lauten:
@echo off
set /p id=Enter ID:
echo %id%
jstack %id% > jstack.txt
Und/Oder 2. Sie haben es zwar in den Code eingebaut (und vergessen, uns das in der Frage mitzuteilen), aber beim Ausführen der Batch-Datei haben Sie die Eingabetaste gedrückt, anstatt eine ID (z. B. 1234) einzugeben.
Was jetzt geschieht, ist das Ergebnis dieser beiden Fehler: jstack
soll mit der von Ihnen angegebenen id aufgerufen werden.
Aber in Ihrem Fall (laut dem Code, den Sie in der Frage angegeben haben) haben Sie ihn ohne Variable aufgerufen. Du hast geschrieben:
jstack > jstack.txt
Wenn Sie also jstack
ohne Variable wird folgendes ausgegeben:
Terminate batch file Y/N?
Ihr zweiter Fehler ist, dass Sie die Eingabetaste gedrückt haben, anstatt einen Wert einzugeben, als das Programm Sie fragte: Enter ID:
. Hätten Sie an dieser Stelle eine ID eingegeben, z. B. 1234, würde die %id%
wird zu diesem Wert, in unserem Fall 1234. Sie haben jedoch KEINEN Wert eingegeben und stattdessen die Eingabetaste gedrückt. Wenn Sie der Variablen keinen Wert zuweisen und wenn die Variable vorher nicht auf einen anderen Wert gesetzt war, dann wird die Variable %id%
wird auf die Eingabeaufforderung der set
Befehl!! Und jetzt %id%
wird eingestellt auf Enter ID:
die wie in der Stapeldatei gefordert auf dem Bildschirm ausgegeben wurde, BEVOR Sie den jstack aufgerufen haben.
Aber ich vermute, dass Sie die jstack %id% > jstack.txt
in Ihrem Batch-Datei-Code mit der %id
(und ihn versehentlich in der Frage ausgelassen), und dass Sie die Eingabetaste gedrückt haben, ohne eine ID einzugeben. Das Stapelverarbeitungsprogramm gab dann die ID aus, die jetzt "Enter ID:" lautet, und führte dann jstack Enter ID: > jstack.txt
Jstack selbst verfolgte die Eingabe, stieß auf einen Fehler und forderte zum Beenden auf.
Und all dies wurde in die Datei jstack.txt geschrieben.
3 Stimmen
"
1 Stimmen
Hat eine dieser Antworten nicht funktioniert? Wenn nicht, haben Sie eine Lösung gefunden? Wenn ja, wäre es hilfreich, wenn Sie sie hier als Selbstauskunft posten würden.
1 Stimmen
Wenn Sie feste Optionen für die Eingabe wünschen, ist es besser, wenn Sie
choice
alsset /p
2 Stimmen
Bitte markieren Sie meinen Beitrag als Antwort, die im Wesentlichen darin besteht, dass Sie beim Ausführen des Stapelverarbeitungsprogramms die Eingabetaste gedrückt haben, anstatt eine ID an der Eingabeaufforderung einzugeben, und daher wurde die %id% auf
Enter ID:
und nicht eine ID, die Sie über die Tastatur eingeben sollten.1 Stimmen
@pashute marc's account scheint gelöscht worden zu sein lol