Miten Windows cmd:ssä pyydetään käyttäjän syötettä ja käytetään tulosta toisessa komennossa?

Minulla on Windows .bat-tiedosto, jonka haluaisin hyväksyä käyttäjän syötteen ja käyttää sen jälkeen syötteen tuloksia osana lisäkomentojen kutsua.

Haluaisin esimerkiksi hyväksyä käyttäjältä prosessin ID:n, ajaa jstackin kyseistä ID:tä vastaan ja laittaa jstack-kutsun tulokset tiedostoon. Kun yritän tätä, se ei kuitenkaan toimi.

Tässä on esimerkkibat-tiedoston sisältö:

@echo off
set /p id=Enter ID: 
echo %id%
jstack > jstack.txt

ja tässä'on mitä näkyy jstack.txt:ssä:

Syötä ID: Lopeta erätyö (Y/N)?

Kokeile tätä:

@echo off
set /p id="Enter ID: "

Voit sitten käyttää %id% parametrina toisessa eräajotiedostossa, kuten jstack %id%.

Esimerkiksi:

set /P id=Enter id: 
jstack %id% > jstack.txt
Kommentit (5)

Syntaksi on seuraava: set /p variable=[string]

Tutustu syvällisemmin käyttäjän syötteisiin Windows-käyttöjärjestelmän eri versioiden eräajotiedostojen avulla osoitteessa http://commandwindows.com/batch.htm tai http://www.robvanderwoude.com/userinput.php.

Kun olet asettanut muuttujasi, voit käyttää sitä seuraavalla tavalla.

@echo off
set /p UserInputPath=What Directory would you like?
cd C:\%UserInputPath%

Huomaa %VariableName%-syntaksi.

Kommentit (7)

En ole varma, onko näin kaikissa Windows-versioissa, mutta XP-koneessa, joka minulla on, minun on käytettävä seuraavaa:

set /p Var1="Prompt String"

Ilman lauseissa olevaa kehotusmerkkijonoa saan erilaisia tuloksia tekstistä riippuen.

Kommentit (3)