Anonym bruger
Mere
Hvordan kan jeg i Windows cmd bede om brugerinput og bruge resultatet i en anden kommando?
Jeg har en Windows .bat-fil, som jeg gerne vil acceptere brugerinput og derefter bruge resultaterne af dette input som en del af opkaldet til yderligere kommandoer.
Jeg vil f.eks. gerne acceptere et proces-ID fra brugeren og derefter køre jstack mod dette ID og lægge resultaterne af jstack-opkaldet ind i en fil. Men når jeg prøver dette, virker det ikke.
Her's mit eksempel bat-fil indhold:
@echo off
set /p id=Enter ID:
echo %id%
jstack > jstack.txt
og her'er hvad der vises i jstack.txt:
Indtast ID: Afslut batchjob (J/N)?
360
3
Prøv det her:
Du kan derefter bruge
%id%
som en parameter til en anden batchfil somjstack %id%
.For eksempel:
Syntaksen er som følger: sæt /p variable=[string]`
Tjek http://commandwindows.com/batch.htm eller http://www.robvanderwoude.com/userinput.php for en mere dybdegående gennemgang af brugerinput med de forskellige versioner af Windows OS batchfiler.
Når du har indstillet din variabel, kan du derefter bruge den på følgende måde.
Bemærk syntaksen
%VariableName%
.Jeg er ikke sikker på, om det er tilfældet for alle versioner af Windows, men på den XP-maskine, jeg har, skal jeg bruge følgende:
Uden promptstrengen i citater får jeg forskellige resultater afhængigt af teksten.