batch programmeren

Status
Niet open voor verdere reacties.

robin001

Nieuwe gebruiker
Lid geworden
17 dec 2013
Berichten
1
ik heb eens een vraagje ben nu al een tijdje bezig aan mijn eigen .bat programmetje te maken
en wil er eigenlijk in dat programmetje een deel maken dat ik met een code verberg

ik dacht het eerst te maken in een soort van geheime starter:

cls set /p rekenen=wat is uw reken som ?
set /a rekenen=result=%rekenen%
echo %result% if %result%==2 start notepad.exe


dus dat ik eigelijk hetzelfde doe maar dan gewoon het wachtwoord vraag in plaats van de rekenensom en als dan het wachtwoord bv. 2 is ik dan een goto zet en in het versleutelde programma zit

maar ik denk dat het niet
op deze manier werkt ik heb even iets uitgeproberd

@echo off
set /p wachtwoord?=wat is je wachtwoord set /a
wachtwoord=check=%wachtwoord%
echo %check%
if %check%=='2' goto verder
if not %wachtwoord% =='2' goto weg

maar volgens mij zitten hier fouten in en ik weet ook niet zo goed wat set /p en /a betekend dus dat maakt mij er het der niet makkelijker op

maar wat ik dus eigelijk wil maken is dat cmd vraagt naar een wachtwoord
als ik het juist wachtwoord ingeef ik verder ga
maar als ik het verkeerde in geef dat het dan terug gaat
het moet ook in het programma zelf draaien want later zet ik dat .bat filetje over naar .exe en dan is niet bijna onleesbaar en zit mijn wachtwoord programmetje veilig


vraag 2 =

verder zoek ik nog een code om verschillende .txt files
die ik zelf maak in mijn programma dus bv :echo. >test.txt
kan op slaan in een map die in zelf kies dus niet dat het test.txt filetje in dezelfde map komt te staan als waar mijn programma in staat
 
Als je in een DOS box de opdracht HELP SET intikt krijg je alles over de SET opdracht uitgelegd. Bij de ECHO opdracht mag je gewoon de mapnaam meegeven, bijvoorbeeld: ECHO regeltje tekst > C:\Mapnaam\test.txt
 
Vraag 1:

Je moet hier met het command "if" gaan werken.
@echo off
:wachtwoord
cls
set /p wachtwoord=Wat is het wachtwoord?
if %wachtwoord% == (wat je zelf leuk vindt: plaats dit tussen aanhalingstekens!!!) goto goed
goto wachtwoord
:goed
(wat je wil dat er gebeurt als het wachtwoord goed is)
Laten we het even doornemen:
"@echo off" zorgt ervoor dat het command niet wordt weergegeven.
":wachtwoord" is een label waar met een "goto"-command naar kan worden verwezen. Type "goto /?" in Commandprompt voor meer informatie.
"cls" maakt het scherm leeg. Dit is belangrijk, omdat als het wachtwoord niet goed is, het scherm anders niet leeg wordt gemaakt en er dus twee keer hetzelfde komt te staan. Type "cls /?" in Commandprompt voor meer informatie.
"set /p wachtwoord=Wat is het wachtwoord?" is als volgt geprogrammeerd: "set /p [variabele]=[vraag]". Een variabele is iets waar een waarde aan zit, zoals opeenvolgende cijfers, letters, of cijfers en letters. Het antwoord van de gebruiker wordt opgeslagen als variabele "wachtwoord". Type set /? in Commandprompt voor meer informatie.
"if %wachtwoord% == [waarde] goto goed" zorgt ervoor dat als de variabele "wachtwoord" (oftewel het antwoord van de gebruiker) wordt gecontroleerd of het de waarde is die je hebt opgegeven waar nu "[waarde]" staat. Als dit zo is, zal Commandpromt gaan naar het label "goed". Type if /? in Commandprompt voor meer informatie.
"goto wachtwoord" zorgt ervoor dat het programma Commandpromt springt naar het label "wachtwoord", waar het alle commands zal uitvoeren die daarna volgen. Het zal dus eerst het scherm leeg maken, vragen wat het wachtwoord is etc. LET OP: dit gebeurt niet als er op een van de vorige regels naar een label is verwezen waarna dit command niet volgt.
Als het script niet werkt, zit er een foutje in de "if"-opdracht. Ik zal deze fixen als het nodig is. Als je het niet begrijpt kun je altijd vragen wat ik ergens bedoel.

Vraag 2:

Hier kan ik je helaas niet helpen. Misschien wel als ik het command weet waarmee je een nieuw .txt file maakt vanuit een .bat file. Dat is dus mijn vraag aan jou: hoe maak je een .txt file vanuit een .bat file?

EDIT: cool, ik heb het zelf geprobeerd (het command "echo. >test.txt") en inderdaad, er wordt een nieuw .txt filetje aangemaakt. Dit wist ik nog niet en ik begrijp nu ook eindelijk het antwoord van edmoor :).
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan