Avancerade Batch (3 / 12 steg)
Steg 3: Ange kommandot - Mr.Math (2/4)
OFFSET Test = 1ECHO % Test % SET Test = % Test %-1ECHO % Test % paus
AW, vad hände? Som bör ha arbetat! Vänta lite... vad var det om SET-kommandon bara göra strängar?
Ja. Kommandot SET av sig själv kommer bara att skapa en strängvariabel, vilket betyder att det kommer att skapa den mest bokstavlig tolkningen av värdet.
Det inte tänker på "1-1" lika med "0", det funderare av "1-1" lika "1-1."
Så hur ändrar vi det?
Vi vill att variabeln inte vara direkt kopierat, men utvärderas. Detta innebär att vi vill göra det från en sträng till ett uttryck! En mycket lätt ändra, Lägg en /a i SET-kommandot.
Här är en enkel kommandofil att se den i aktion, eller du kan bara skriva det i Kommandotolken manualen. Jag föreslår att de senare. Det är mycket snabbare, och koden är inte alltför komplicerat, men om du verkligen vill baken arkivera, är här det:
OFFSET/a Test = 2 + 2ECHO % Test % paus
Fantastiskt! Det uttryckte det perfekt. Nu vet vi vad förändringar behöver göras för att våra "math test.bat"
OFFSET/a Test = 1ECHO % testa % SET/a = % Test %-1ECHO % Test % paus
Okej. Så låt oss springa den!
Stor! Den arbetat alldeles! Men vad händer sen?