Toon posts:

DOS tool om userinput te vragen?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Guys/Girls,

Bestaat er een tool die onder MS Dos een vraag stelt en het antwoord (hoe lang dan ook) in een variabele zet? (Of een errorlevel veroorzaakt?)

Jullie zullen wel denken wat een domme vraag, want er zijn veel soortgelijke tooltjes, maar de meeste lezen maar de input van 1 karakter. Het is ook een tijd geleden dat ik dos Batches maakte... vandaar! ;)

So.. is er nog iemand met Old-Skool Dos Batch programming ervaring of tools?

  • Krypt
  • Registratie: April 2000
  • Laatst online: 05-05 17:38
Kixtart kan het.. Moet je er even een kixscriptje van maken...

Wel de 16bit versie downloaden als je echt onder dos werkt en niet in een shell..

Pvouput live


Verwijderd

Topicstarter
Hmmm... dat wilde ik eigenlijk voorkomen... Heb totaal geen ervaring met Kix....

  • Wilke
  • Registratie: December 2000
  • Nu online
4DOS heeft ook veel uitgebreidere functies om dit te kunnen doen...of NDos....

Ik vraag me af of zoiets in 'standaard' DOS zit...

  • Krypt
  • Registratie: April 2000
  • Laatst online: 05-05 17:38
De tijd om het te leren :).. is echt niet moeilijk, net batch/basic....

Pvouput live


Verwijderd

ik weet zeker dat het erin zit, heb er nog menuutjes mee gemaakt,
if errorlevel 1 then goto menu

:menu

blablabla, ging heel goed. Ik raad je dus even aan om op "batch dos errorlevel" te zoeken in google, en ik denk dat je heel wat zal vinden

(even net zelf gedaan om zeker te zijn: choice /? zal je veel vertellen denk'k
http://www.experts-exchange.com/Programming/Q_20350590.html)

[ Voor 16% gewijzigd door Verwijderd op 15-05-2003 15:00 ]


  • !AnacondA!
  • Registratie: December 2001
  • Laatst online: 12-04-2021
dit heb ik ook lang geleden gedaan.. maar waarom gebruik je geen qbasic? qb 1.0 standaard bij dos...

input "naam:", A$

(het andwoord wordt dan opgeslagen in a$)

Laptop: ATI mobility 9800 P4 3.4Ghz Server: AMD 2400+ Epox 8k3A+


  • TheGhost
  • Registratie: December 2001
  • Laatst online: 02-05 13:11
welk OS heb je ? volgens mij zit 't choice commando niet (meer) in W2k!

I'm not weird, I'm a limited edition


  • Wilke
  • Registratie: December 2000
  • Nu online
Win2k is ook geen DOS. MS DOS zegt 'ie, de versie is dan minder relevant, hoewel nog steeds wel handig om te weten. 6.22 ofzo?

qbasic gebruiken? Hoe wil je dan de waarde buiten qbasic krijgen (nog afgezien van hoe traag het dan wordt)?

Verwijderd

SET /P gebruiken.
SET /P antwoord=Wilt u dit echt doen?
if "%antwoord%"=="ja" echo OKE dan!

dit commando zit in FreeCOM, de FreeDOS vervanger voor command.com
(en 4dos is ook een optie uiteraard, www.jpsoft.com)
http://freedos.sourceforg...ckages/082pl2/xmsswap.zip

  • !AnacondA!
  • Registratie: December 2001
  • Laatst online: 12-04-2021
Wilke schreef op 15 mei 2003 @ 16:01:
Win2k is ook geen DOS. MS DOS zegt 'ie, de versie is dan minder relevant, hoewel nog steeds wel handig om te weten. 6.22 ofzo?

qbasic gebruiken? Hoe wil je dan de waarde buiten qbasic krijgen (nog afgezien van hoe traag het dan wordt)?
Waarde buiten qb is niet zo moeilijk... je kan in het geheugen schrijven of de waar deopslaan in een bestand of iets uitvoeren. En de snelheid bij een simpele imput gaat niet merkbaar achteruit.

input "waarde?", a$
open "waarde.dat" for append as #1
print #1, a$
close #1

-------------------
if a$ = "start windows" then shell "c:\windows\win.com"

Laptop: ATI mobility 9800 P4 3.4Ghz Server: AMD 2400+ Epox 8k3A+


Verwijderd

Topicstarter
Dat SET /P werkt inderdaad alleen onder windows 2000 of XP, en ik werk met NT 4.0 workstation. Vanuit veiligheidsaspecten kan ik ook geen QBasic gebruiken... Was dat maar waar, dan zou het inderdaad geen probleem zijn. Ook Choice is geen optie, die leest slechts 1 karakter uit. Dat menu werkt ook niet, zelfde laken en pak.


Ik moet dus een string in kunnen voeren en pas als ik op ENTER druk, dan moet de gehele waarde in een variabele gepropt worden. Das het probleem... Ook by Filelibrary.com kan ik zo'n tool niet vinden...

Met ERRORLEVELS kan ik dus ook niet werken, die pakt alleen een nummer.... Snappen jullie het dilema... ;) Maar in elk geval thanx voor het meedenken !

[ Voor 6% gewijzigd door Verwijderd op 15-05-2003 23:12 ]


  • _JGC_
  • Registratie: Juli 2000
  • Nu online
probleem met std batch is dat je geen vergelijkingen kunt maken met ==, !=, GT, GE, LT en LE.
je zou met een of ander input tooltje een hele string mee kunnen pakken en dit verder gebruiken in je batchscript.

Persoonlijk zou ik voor 4NT gaan als ik jou was, deze heeft alles wat een krachtige batchtaal nodig heeft.

  • XTerm
  • Registratie: Juli 2001
  • Laatst online: 10-06-2025
Als je choice.com hebt kan het daar mee =)

Verder kan je toch een C programma schrijven dat de invoer regelt en dan kan je met return(); en ON ERRORLEVEL x AND NOT ERRORLEVEL x+1 gaan werken.

Verwijderd

Uhmzzz choice.com jah en prompter is er ook eentje die ik heb gebruikt ooit. Choice is met errorlevels en prompter die slaat het antwoord (hele regel soms) op in een variabele.

  • Johan
  • Registratie: Januari 2000
  • Laatst online: 04-05 22:59
Er is een mogelijkheid om dat met pure ms-dos commando's dat te doen, zonder enige vervanger of utility.

Uit mijn hoofd:

batch prog :

copy con >antwoord.bat
call antwoord.bat
echo antwoord is: %antw%

Wat copy con>antwoord.bat doet is de toetsenbord invoer redirecten naar het antwoord.bat file ipv de standaard keyboard afhandeler.

De gebruiker zou dan zou antwoord moeten geven:
SET ANTW=en dan hier het antwoord
Afsluiten met Ctrl-Z of F6. Dan staat de bovenstaande regel in het batch bestand. Die start je op, waardoor die evironment variabele ANTW is geset, die je vervolgens kan gebruiken.

Je kan het eventueel gemakkelijk maken voor de gebruiker om alleen het antwoord in te laten tikken en dan zelf SET ANTW= er voor zetten.
Commandos dan:
copy con>antwoord.txt
echo SET ANTW= > antwoord.bat
type antwoord.txt >>antwoord.bat
antwoord.bat
echo antwoord=%antw%

De gebruiker moet helaas dan nog steeds met f6 of ctrl-z zijn antwoord afsluiten ipv enter. Dat zou je vantevoren even moeten melden met een echo.
Mmmm, ik bedenk me nu, dat deze laatste misschien niet werkt omdat set antw= en het antwoord zelf waarschijnlijk op 2 losse regels komt te staan...

Het is dus een wazige, vreemde, gebruikersonvriendelijke oplossing, maar wel eentje die echt puur ms-dos commando's gebruikt. Een utility is misschien wat handiger.

[ Voor 8% gewijzigd door Johan op 16-05-2003 13:19 ]


Verwijderd

Topicstarter
Choice is geen oplossing, die vangt maar 1 karakter af en geen line! Copy CON had ik ook getest, maar helaas, dan moet ik eerst F6 (CTRL-Z) doen en dan enter... inderdaad.. dus dat was ook geen optie.. (Vindt ik wat knullig staan).. I know.. I know.. ik ben een perfectionist... Dat prompter is helemaa nieuw voor mij... waar kun je dat vinden?

Verwijderd

Wat jij nodig hebt is het commando WHAT.EXE
Als je bijvoorbeeld deze regel in je batchfile zet:

what s "Wat is je naam:"

dan komt in de environmentvariabele %WHAT% de string te staan die is ingevoerd.

Op http://www.kadifeli.com/fedon/util.htm#what is het programma te downloaden!

  • !AnacondA!
  • Registratie: December 2001
  • Laatst online: 12-04-2021
"veiligheidsaspecten" ? :?
is een exe minder veilig dan een .bat :?
lijkt me eerder andersom...

Laptop: ATI mobility 9800 P4 3.4Ghz Server: AMD 2400+ Epox 8k3A+


Verwijderd

Topicstarter
Nee dude, maar een basic script kan iedereen uitlezen.... En ik kan met Bat2Exe van elk batch file een exe maken... snappie...

Enne ... Seppie RULEZZZZ... WHAT.EXE was de oplossing!! Thanx guys!

  • Jaap-Jan
  • Registratie: Februari 2001
  • Laatst online: 20:09
Verwijderd schreef op 18 mei 2003 @ 09:46:
Nee dude, maar een basic script kan iedereen uitlezen.... En ik kan met Bat2Exe van elk batch file een exe maken... snappie...

Enne ... Seppie RULEZZZZ... WHAT.EXE was de oplossing!! Thanx guys!
Je kunt een QuickBasic programma toch ook compileren?

| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett


Verwijderd

Topicstarter
Klopt, je hebt helemaal gelijk Japie, maar tot de dag van vandaag heb ik zo'n compiler nog niet gevonden... Helaas...

[ Voor 4% gewijzigd door Verwijderd op 18-05-2003 10:24 ]


Verwijderd

Goed zoeken, das wel te vinden. Maar je kan beter zoeken naar Microsoft PDS (ookwel Microsoft QuickBASIC Extended). Dat is ook voor Basic, en geheel compitabel met QuickBASIC, alleen is hij iets uitgebreider.

[ Voor 76% gewijzigd door Verwijderd op 18-05-2003 13:52 ]


  • Jaap-Jan
  • Registratie: Februari 2001
  • Laatst online: 20:09
Dat is het verschil tussen QBasic en QuickBasic, bij die laatste kun je programma's compileren. Zoek met Google Ik durf geen linkjes te geven, want ik kan niet verifiëren dat ze legaal zijn. Ik heb al eens een OW gehad hiervoor.

| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett


  • !AnacondA!
  • Registratie: December 2001
  • Laatst online: 12-04-2021
qbasic=quicbasic.. alleen heb je verschillende versies versie 1.0 kan niet compileren, maar versie 4.0 en 7.1 wel...

Laptop: ATI mobility 9800 P4 3.4Ghz Server: AMD 2400+ Epox 8k3A+


Verwijderd

Topicstarter
Ow.. Cool... da wisk nie.... Daar ga ik ook nog effe naar zoeken Japie/Anaconda.... Das ook wel handig voor in de toekomst! :D
Pagina: 1