İki olasılık vardır.
Sen koymayı unutmuş %id%
içinde jstack
çağrı.
jstack %id% > jstack.txt
Yani tüm doğru toplu iş dosyası şöyle olmalıdır:
@echo off
set /p id=Enter ID:
echo %id%
jstack %id% > jstack.txt
Ve / Veya 2. Kodu koydunuz (ve soruda bize söylemeyi unuttunuz), ancak toplu iş dosyasını çalıştırdığınızda, bir kimlik yazmak yerine Enter tuşuna basın (diyelim 1234).
Olan şey şu iki hatanın sonucudur:
jstack
sağladığınız kimliğe sahip olması gerekir.
Ancak sizin durumunuzda (soruda verdiğiniz koda göre) herhangi bir değişken olmadan aradınız. Sen yazdın:
jstack > jstack.txt
Yani jstack
değişken olmadan çalıştırdığınızda aşağıdakileri çıkarır:
Terminate batch file Y/N?
Sizin ikinci hata yerine programın sorduğumda bir değer verme girin preslenmiş olmasıdır: Enter ID:
. Bu noktaya, örneğin 1234'e bir kimlik girseydiniz, %id%
değişken bizim durumumuzda 1234 olan bu değer haline gelir. Değişkene herhangi bir değer vermezseniz ve bu değişken daha önce başka bir değere ayarlanmamışsa, değişken komut %id%
istemine ayarlanır set
!! Yani şimdi %id%
ayarlandığında Enter ID:
Eğer jstack denilen ÖNCE toplu dosyasında istendiği gibi ekranda yankılandı edildi.
Ancak jstack %id% > jstack.txt
, toplu dosya kodunuzda %id
(ve sorunun yanlışlıkla atlanmış) olduğunu ve bir kimlik yazmadan enter tuşuna bastığınızdan şüpheleniyorum . Daha sonra, toplu iş programı şimdi "Kimlik Girin:" olan kimliği tekrarladı ve ardındanjstack Enter ID: > jstack.txt
Jstack kendisi girişi tekrarladı, bir hatayla karşılaştı ve sonlandırılmasını istedi.
Ve tüm bunlar jstack.txt dosyasına yazılmıştır.