Gå til innhold

Tom set command = exit..


Anbefalte innlegg

Hei,

 

se på denne;

 

:page0
cls
Set /p test=
if %test% equ 1 goto page1
if %test% equ 2 goto page2
if %test% equ 0 goto page0
goto page0 

:page1
cls
*txt*

:page2
cls
*text*

 

når en slik kode brukes så vil den lukke ned bat filen hvis man svarer tomt, men hvis jeg svarer f.eks. 0, og deretter tomt, så vil den ikke lukke seg (test=0)

Hvordan kan man slippe av den lukker seg ned ved tomt svar første gang?

Lenke til kommentar
Videoannonse
Annonse

en del grunnleggende feil her.

første feil:

det som er galt når du ikke skriver noe er at ingen av IF-setningene blir sanne , dermed går den til neste linje, som er "goto page0".

trykker du enter igjen uten å skrive noe skjer det samme.

du må altså skrive hva den skal gjøre under IF-setningene så den vet hva den skal gjøre hvis ingen av IF-setningene er sanne.

 

når du skriver først 0 og så ingenting vil den huske at du skrev 0 første gangen, det ligger jo allerede i variabelen %test%.

du må fjerne den før du spør etter ny variabel.

her er ett script som funker greit(slik disse pleier å funke, hva du er ute etter vet jeg ikke)

 

@echo off
:page0
cls
set test=
Set /p test=
if %test% equ 1 goto page1
if %test% equ 2 goto page2
if %test% equ 0 goto page0
exit
goto page0

:page1
cls
*txt*
exit

:page2
cls
*text*
exit

Lenke til kommentar
en del grunnleggende feil her.

første feil:

det som er galt når du ikke skriver noe er at ingen av IF-setningene blir sanne , dermed går den til neste linje, som er "goto page0".

trykker du enter igjen uten å skrive noe skjer det samme.

du må altså skrive hva den skal gjøre under IF-setningene så den vet hva den skal gjøre hvis ingen av IF-setningene er sanne.

 

når du skriver først 0 og så ingenting vil den huske at du skrev 0 første gangen, det ligger jo allerede i variabelen %test%.

du må fjerne den før du spør etter ny variabel.

her er ett script som funker greit(slik disse pleier å funke, hva du er ute etter vet jeg ikke)

 

@echo off
:page0
cls
set test=
Set /p test=
if %test% equ 1 goto page1
if %test% equ 2 goto page2
if %test% equ 0 goto page0
exit
goto page0

:page1
cls
*txt*
exit

:page2
cls
*text*
exit

 

 

Nei, det samme vil skje der, meningen er jo at programmet IKKE skal lukke seg hvis du forlater variabelen tom, altså bare klikker enter istedet for å skrive inn noe, jeg kan ikke batch veldig godt, men det er jo line reading, slik du satt det opp vil den jo exit'e anyway, den vil ikke endre variabelen til hver av de på IF listen.

 

Hvis du leser;

 

:page0

cls

Set /p test=

if %test% equ 1 goto page1

if %test% equ 2 goto page2

if %test% equ 0 goto page0

goto page0

**************

:page0

cls (clearscreen)

set /p test= (set variabel, spørrestreng)

if %test% equ 1 goto page1 (hvis variabel test (equicez) = 1, gå til page1)

if %test% equ 2 goto page2 (hvis variabel test (equicez) = 2, gå til page2)

if %test% equ 0 goto page0 (hvis variabel test (equicez) = 3, gå til page3)

goto page0 (gå til page0)

 

 

må ha selvfølgelig ha en pause > nul command etter teksten på de forskjellige sidene, men ja. det er ikke poenget.

 

hvis du tenker deg at den leser en og hver linje så når du bare klikker enter (blank) vil IKKE variabelen være 1,2 eller 0. Så "goto page0" men den vil nettopp ikke gjøre dette, istedet for å gå til page0 vil den bare lukke seg =/

 

Til og med prøvd med command "else goto" men nei =/

Endret av TobiasG
Lenke til kommentar

har testet scriptet du laget på min maskin nå.

den gjør akkurat det jeg sa den skulle gjøre.

Vista du har kanskje?

jeg har aldri hørt om at noe slikt skjer ihvertfall...

 

 

men, jeg akkurat kommet hjem fra 16-timers arbeidsdag, på tide å legge seg og se på det mer i morgen.

Lenke til kommentar
har testet scriptet du laget på min maskin nå.

den gjør akkurat det jeg sa den skulle gjøre.

Vista du har kanskje?

jeg har aldri hørt om at noe slikt skjer ihvertfall...

 

 

men, jeg akkurat kommet hjem fra 16-timers arbeidsdag, på tide å legge seg og se på det mer i morgen.

 

Har vista x64 ja, så batch mulighetene er noe færre desverre..

Lenke til kommentar
  • 4 måneder senere...

Hei Tobias, lenge siden du skrev dette, men prøver i hvertfall alikevel.

det jeg har gjort er hovedsaklig og fylle in

set test=999

og

if %test% equ 999 goto page0

 

i tilegg til at jeg satt det sammen til ett helt skript som e klart for testing.

 

dette gjør at filen registrerer ett tomt svar som 999 og du kan bruke if+goto kommandoene :)

 

håper jeg hjalp deg med dette nå ettersom jeg selv hadde samme problem(som jeg skrev tidligere), og takket være Aklla fant jeg ut av det(etter litt fikling)

vet forresten om et lignende problem og det er hvis du trykker space + enter så får du samme problem :S (cmd lukkes)

@echo off

:page0
cls
set test=999
set /p test=write the page number you want to visit:
if %test% equ 1 goto page1
if %test% equ 2 goto page2
if %test% equ 999 goto page0
goto page0

:page1
cls
echo This is page 1
pause
goto page0

:page2
cls
echo This is page 2
pause
goto page0

Lenke til kommentar

(sorry hvis det allerede er svart, gadd ikke lese alle reply's :p)

eksempel:

IKKE GJØR:

if %%1 == %blabla%

 

 

GJØR:

if "%%1" == "%blabla%"

 

 

IKKE GJØR:

if %test% equ 1 goto page1

 

 

GJØR:

if "%test%" equ "1" goto page1

Endret av Hans_Henrik
Lenke til kommentar
  • 2 uker senere...

@echo off
:page0
cls
set test=
Set /p test=Enter shit:

if "%test%"=="" (
goto :page0
)

if %test% equ 1 ( 
goto :page1
) else (
if %test% equ 2 ( 
goto :page2
)
)

:page1
echo Page1
*txt*
exit

:page2
echo page2
*text*
exit

 

Else is the shit -aC

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...