windows - Batch Color Selection Error

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har problemer med et batchprogram, hvor jeg forsøger at lære at få en bruger til at indstille den farve, der er valgt. Problemet er, når jeg indtaster den værdi, jeg vil have, og tryk Enter, lukker programmet. Jeg har Windows 10 64x


@echo off

:setcolor
set /p \%color\%= "What color text do you want? [0-White  1-Blue  2-Green  3-Red  4-Yellow]"
if \%color\% EQU 0 goto :1 
if \%color\% EQU 1 goto :2
if \%color\% EQU 2 goto :3
if \%color\% EQU 3 goto :4
if \%color\% EQU 4 goto :5
goto :setcolor

:1
color 07
goto :main 
:2
color 01
goto :main
:3
color 02
goto :main
:4
color 0c
goto :main
:5
color 06
goto :main

:main
echo test
pause

Bedste reference


Som @Sphan mentioned, skal set /p \%color\%= ændres til set /p color=.


Når vi indstiller variabler, sætter vi ikke \% s omkring variablen (udvid det), men vi indtaster variablenes navn.


Så her er din kode:


@echo off

:setcolor
set /p color="What color text do you want? [0-White  1-Blue  2-Green  3-Red  4-Yellow]"
if "\%color\%" EQU "0" goto :1 
if "\%color\%" EQU "1" goto :2
if "\%color\%" EQU "2" goto :3
if "\%color\%" EQU "3" goto :4
if "\%color\%" EQU "4" goto :5
goto :setcolor

    .....





Forresten tilføjede jeg citater (") til \%color\% og tal for at forhindre batchfilen, når der stødes på tomme indgange eller indgange med plads