Stap 2: Hoe werkt cmd.exe parseren opdrachten?
Dus, het eerste ding cmd doet is zoeken voor een bestand met de naam wat de opdracht (hoofdlettergebruik niet van belang) was (laten we het gebruik van echo voor deze situatie), met de extensie .exe, .bat, .cmd of .com (ik ben vrij zeker van dat er minder of meer uitbreidingen die het zoekt). Zodra het bestand is gevonden, wordt wat je na het verzonden aan het script in de vorm van een parameter (dit zal worden toegelicht).
Dus, als ik in een fictieve opdracht zoals "EAT hamburger frietjes", en er is een bestand genaamd EAT.bat in de juiste map (die later zal worden verklaard ook), dan is het stuur de woorden "hamburger" en een "fries" als parameters 1 en 2 (respectievelijk).
Laten we zeggen dat dit is de code in het bestand EAT.bat
% USERNAME % aten %1 en %2
Zeer korte code, is het niet. Hoe dan ook, als ik schreef "EAT hamburger frietjes" dan de uitvoer zou
Prof augurk aten hamburger en friet
Het is een moderne meesterwerk, nietwaar? Als je waar de variabele "gebruikersnaam" kwam afvraagt je uit, is het een vooraf ingestelde variabele die in het bezit van de momenteel aangemelde gebruiker gebruikersnaam. Tip: Om te zoeken naar alle vooraf ingestelde variabelen en hun waarden, typt u "SET" in het opdrachtregelvenster.
Zoals u mogelijk al hebt geraden, kan er alleen worden 10 parameters *. Wacht, maakte hij een typfout?
Je hoorde correct, er zijn 10 parameters: %1, %2, %3, %4, 5%, 6%, %7, %8, %9 en een speciale, vooraf ingestelde parameter met de naam van %0. Deze speciale parameter houdt het bestandspad van het bestand.
Hier is een experiment voor u om te proberen:
- Maak een nieuwe map in uw documenten met de naam Test (als er niet een al)
- Open Kladblok en typ in de volgende...
uitschakelen
echo %0
pauze3. Sla het op als "parameters_test_01.bat" (u kunt het opslaan als wat je wilt, het zal niet maken significant verschil
4. zoals u al geraden misschien, moet u nu voor tweevoudig tikken daarop.
Wat je ziet is het bestandspad van het bestand dat herhaald op het scherm. Fancy, hè?
Ik denk dat over it bedragen up (wetende mij die ik laat sommige essentieel stuk van kennis die bepalend zijn voor het succes van het falen van uw leven).
* Er kan meer dan 9 gebruiker ingestelde parameters, maar u kunt alleen toegang krijgen tot een 9 van hen. Met behulp van de opdracht shift , kunt u de waarde van een parameter aan de parameter vóór het verplaatsen. Hier is een experiment die kunt u proberen...
uitschakelen : opdracht
ECHO pers ieder toonsoort voor de volgende parameters verzenden op een opdracht:
echo 1 2 3 4 5 6 7 8 9 10
onderbreken > nul
Bel: opdracht 1 2 3 4 5 6 7 8 9 10
ECHO.
ECHO het script is teruggekeerd uit de opdracht.
ECHO.
ECHO druk op een toets om af te sluiten
onderbreken > nul
uitgang
ECHO Parameters 1-9:
echo %1 %2 %3 %4 %5 %6 %7 %8 %9
ECHO.
echo die de opdracht shift zal nu worden gebruikt om de waarden te verschuiven.
Shift
ECHO.
ECHO Parameters 1-9:
echo %1 %2 %3 %4 %5 %6 %7 %8 %9
goto: eof