Windows batch valg kommando til Windows XP & 2003

Indlæg af Hanne Mølgaard Plasc

Problem



Er der mulighed for at anmode brugerne om input (dvs.: Ja/Nej) fra et Windows-batch-script, der fungerer på XP og Windows 2003-serveren? Det ser ud til, at nogle kommandoer (dvs. valg) kun virker på et OS og ikke andre.

Bedste reference


Brug SET-kommandoen med/P-kontakten. [9]

Andre referencer 1


SET /P RESULT=Y or N?
ECHO \%RESULT\%

Andre referencer 2


Bemærk, at kommandoen SET /P ikke understøtter alle de samme funktioner som kommandoen CHOICE. nemlig:



  • Det begrænser ikke brugeren til at indtaste en gyldig værdi

  • Brugeren skal trykke på enter

  • Du skal tjekke for foringsforskelle (fx 'A' vs 'a')

  • Der er ingen måde at standardisere et bestemt valg efter en vis tid



Af disse grunde foretrækker jeg stadig at bruge kommandoen CHOICE i stedet for kommandoen SET /P. For at gøre dette skal du bare medtage CHOICE.COM sammen med din batchfil. Du kan downloade CHOICE.COM fra Microsoft via MS-DOS 6.22 Supplerende Disk . Her er linket:


http://support.microsoft.com/kb/117600[10]

Andre referencer 3


Dette vil grundlæggende efterligne hvilket valg der gør, du skal lægge det som en subrutine i din batchfil. Jeg foretrækker også valg, men jeg har brug for noget bærbart, der kører på Windows XP.


Du kan derefter ændre dette for at acceptere andre 'valg', men det vil fungere som tilfældet ufølsomt og gentage prompten, indtil brugeren eksplicit indtaster Y, Y, N eller N.


:yesorno
set /p choice=\%2
if /i NOT \%choice\% == n (
    if /i NOT \%choice\% == y goto yesorno
)
set "\%~1=\%choice\%"
goto :eof


Du vil så ringe til denne subrutine via:


call :yesorno answer "Do you want to continue? [Y/n]: "


Det har fungeret meget godt for mig hidtil.

Andre referencer 4


For eksempel kan du bruge dette:


SET /P ANSWER=y OR n?
If "\%answer\%"=="y" goto yes
If "\%answer\%"=="n" goto no


God fornøjelse!

Andre referencer 5


Windows Milleniums CHOICE.COM fungerer fint for mig under XP SP3.
Men min er ungarsk sprog, men du kan sikkert finde sin originale engelske variant, for eksempel at søge efter 'windows millenium ebd'.


http://s000.tinyupload.com/index.php?file\_id=57468192666746678653[11]