Bat-bestand commando's. Hoe maak je een bat-bestand aan? Basis commando's. Bat-bestanden schrijven - voorbeelden van batchbestanden

Bij het werken op een computer is het vaak nodig om dezelfde DOS-commando's te herhalen om periodiek uitgevoerde acties uit te voeren, een complexe reeks van uitvoerbare commando's of applicaties op meerdere niveaus te bouwen, het werk met applicaties en bestanden te automatiseren met of zonder de gebruiker. Het besturingssysteem heeft de mogelijkheid om verschillende commando's in een bat-bestand te schrijven. Tegelijkertijd kunt u eenvoudig door dit batchbestand (vaak een script of gewoon "batchbestand" genoemd) de voorgeschreven opdrachten uitvoeren en door het in de gebeurtenissen van de Windows-planner te schrijven, kunt u dit proces automatiseren.

Een kenmerk van dit type bestanden is de afwezigheid van enige code binnenin - er is alleen klokinformatie die wordt gelezen en uitgevoerd door de opdracht DOS-processor, die compatibel is met bijna alle versies van het Windows-besturingssysteem. Een van de opvallende voorbeelden is het bestand autoexec.bat, dat nodig is om dit besturingssysteem te starten, aangezien hij het is die het tijdens het opstarten configureert.

Basisfuncties van batchbestanden

De commando's die het bat-bestand bevat, kunnen voorwaardelijk worden onderverdeeld in verschillende groepen op basis van hun functionaliteit:

Ontworpen om een ​​specifieke waarde, zin, toepassing of informatie op het scherm weer te geven;
- de lancering van batchdocumenten implementeren;
- werken met cycli;
- om vertakkingsuitvoering te creëren met behulp van voorwaarden;
- werken met applicaties.

Batchbestanden uitvoeren

Batchbestanden kunnen op verschillende manieren worden gestart. Wanneer u in de huidige directory werkt, kunt u eenvoudig bestandsnamen invoeren met of zonder aanvullende parameters. In dit geval worden de commando's van de bat-bestanden na het starten achter elkaar uitgevoerd, al zonder tussenkomst van de gebruiker.

Als een batchbestand in een andere map wordt gevonden, moet u naast de volledige naam van dit bestand ook het volledige pad opgeven naar de map waarin het is opgeslagen. De bestandsextensie kan ook worden weggelaten. De huidige directory is bijvoorbeeld d:\photo\work, en het batchbestand vera.bat, dat moet worden uitgevoerd met de parameters resize.doc en /p, bevindt zich in de directory d:\photo\home. Om vervolgens ons bestand te starten, moet u de opdracht d: \ photo \ home \ vera resize.doc / p of de opdracht .. \ home \ vera resize.doc / p schrijven.

Onderbreking van het werk

De bat-file-commando's die na het opstarten worden uitgevoerd, kunnen worden onderbroken door de knopcombinaties +en +... Het display zal u vragen om de uitvoering van het batchbestand te onderbreken met een vraag in afwachting van Ja of Nee. Als u Y invoert, wordt de uitvoering onderbroken en wordt de resterende lijst met opdrachten in het bat-bestand genegeerd. Als u het teken N invoert, wordt de uitvoering voortgezet met het volgende commando uit de lijst.

Een ander batchbestand aanroepen

Bat-bestanden kunnen koppelingen bevatten naar de uitvoering van andere scripts. Als u gewoon een bat-bestand in de hoofdtekst van het script schrijft, worden de commando's erna niet uitgevoerd, omdat de besturing wordt overgedragen naar een ander batchbestand en de commando's daaruit worden uitgevoerd. Als je wilt terugkeren na het starten van een intern bestand, kun je het oproepen met het CALL-commando. De opdrachtindeling ziet er als volgt uit: CALL batfilename [startparameters].

De parameters die aan het aangeroepen batchbestand(en) worden doorgegeven, zijn meestal de tekens% 1 -% 9. Wanneer de commando's van de bat-bestanden allemaal sequentieel zijn doorgegeven, zal de uitvoering van het originele script doorgaan vanaf de volgende regel.

Stap voor stap uitvoering

Er zijn momenten waarop de commando's van bat-bestanden stap voor stap moeten worden uitgevoerd (met een stop na elke regel). Meestal is deze modus vereist bij het debuggen of testen van scripts. Het schrijven van het commando ziet er als volgt uit: COMMAND / y / c _script naam [parameters].

Na uitvoering wordt voor elke opdracht een Y of N-verzoek verzonden. Als u een opdracht moet uitvoeren, drukt u op de toets Enter of Y. Als u een opdracht wilt overslaan, drukt u op ESC of N.

Schakel de weergave van opdrachten op het scherm in of uit

Wanneer het bat-bestand wordt gestart, worden de opdrachten regel voor regel op het scherm weergegeven voordat ze worden uitgevoerd en vervolgens worden uitgevoerd. Soms veroorzaakt dit ongemak, omdat bij een groot batchbestand opdrachten in een lange lijst voor de gebruiker op het scherm worden uitgevoerd en soms moeten ze worden weergegeven, bijvoorbeeld voor dialoog of debugging. Gebruik de opdracht ECHO ON om het bat-bestand van de opdracht weer te geven. Om deze modus uit te schakelen, voert u ECHO in met de parameter OFF. In dit geval worden alle verder uitgevoerde commando's niet meer op het scherm getoond.

Om de uitvoer van slechts één regel van het batchbestand naar het scherm uit te schakelen, kunt u het @-symbool helemaal aan het begin van deze regel gebruiken. Meestal is dit symbool te vinden in combinatie met het @ECHO OFF-commando om te voorkomen dat het wordt weergegeven op het beeldscherm van de monitor. Deze modus wordt vaak gebruikt door cybercriminelen, die virussen maken op basis van bat-bestanden of kleine en grote problemen opleveren voor computergebruikers.

Commando-uitvoeringsberichten

Als er na het ECHO-commando andere tekens zijn dan AAN of UIT, worden deze in elke modus weergegeven. Als ECHO geen parameters heeft, geeft het de status van de weergavemodus van uitvoerbare opdrachten weer - aan of uit.

Indien gewenst kunt u zelfs de computer spelen (piepen) met behulp van een bat-file. De onderstaande commando's zijn gebaseerd op het ECHO-statement met toevoeging van speciale tekens.

Om een ​​geluidssignaal af te spelen, moet u het standaardsymbool met de code 7 weergeven. Dit kunt u doen door op de toets . te drukken en "7" op het numerieke toetsenbord (met het label home).

Om de leesbaarheid van berichten te verbeteren, kunt u het ECHO-commando gebruiken met de parameter ".". (het wordt direct na het commando geplaatst zonder spatie) of een speciaal teken met de code 255. Op het scherm ziet het eruit als een lege regel.

Het ECHO-commando kan worden gebruikt om berichten naar een apart bestand te sturen. De essentie ervan bestaat uit het omleiden van de uitvoer van berichten naar het schrijven naar een bestand, en niet naar het beeldscherm. U kunt bat gebruiken om logboeken, vragenlijsten op te slaan en gebeurtenissen vast te leggen. Uitvoeropdrachten hebben het volgende formaat:

ECHO-bericht >> bestandsnaam - deze opdracht voegt een regel toe aan het einde van een bestaand bestand. Als een dergelijk bestand niet in deze map staat, wordt een nieuw bestand gemaakt.

ECHO-bericht> bestandsnaam - deze opdracht maakt een nieuw bestand aan en schrijft de huidige regel ernaar. Als een dergelijk bestand zich in de huidige map bevindt, wordt de inhoud ervan verwijderd en wordt de opdracht of het resultaat vastgelegd.

Opmerkingen gebruiken

Voor het gemak van het bewerken van scripts wordt het REM-commando gebruikt. Alle commando's van bat-bestanden die erna komen, worden tijdens de uitvoering door Windows genegeerd. Ze zijn te zien tijdens het bewerken en in de stapsgewijze modus. In alle andere gevallen worden opmerkingen niet op het scherm weergegeven.

Vertragingsopdracht in bat-bestand

Soms wordt het tijdens het uitvoeren van een batchbestand nodig om de uitvoering van opdrachten tijdelijk te stoppen, bijvoorbeeld om te wachten op de reactie van de gebruiker, om de tijd voor het lezen van een lang bericht te verlengen, om een ​​schijf te plaatsen, om de aanwezigheid van de gebruiker, of om een ​​batchbestand te debuggen. Het delay-commando in het bat-bestand wordt geschreven als PAUSE zonder parameters. In dit geval toont het display een bericht als "Druk op een willekeurige toets om door te gaan" en het script wordt gepauzeerd totdat de toetsenbordknop wordt ingedrukt. Als de combinatie wordt ingedrukt +of +, dan zal het systeem dit interpreteren als de voltooiing van het uitvoerbare bestand en een verzoek doen om de voltooiing van zijn werk te bevestigen: “De uitvoering van het batchbestand onderbreken? (J / N) ". Als u op de Y-toets drukt, wordt het script op dit punt onderbroken en worden alle resterende openstaande opdrachten genegeerd. Door op N te drukken, wordt de uitvoering voortgezet met het volgende commando. Wanneer gepauzeerd en op andere alfanumerieke toetsen wordt gedrukt, evenals op "Space" en "Enter", zal de uitvoering van het uitvoerbare bestand doorgaan met de volgende opdracht.

bestandslijst

Voor sequentiële uitvoering van meerdere bestanden uit de lijst die zich in dezelfde map bevinden, kunt u ook een bat-bestand gebruiken. De opdrachten "Uitvoeren op naam" en "Uitvoeren op bestandsextensie" kunnen vaak helpen bij het automatiseren van documentverwerking, zoals het sorteren van e-mailbijlagen. Ze verschillen in parameters voor het FOR-commando. Het formaat om het te schrijven wordt hieronder weergegeven:

FOR% x IN (lijst met bestanden) DO commando, waarbij:

X - elk teken, behalve cijfers van 0 tot 9;

Lijst - door spaties gescheiden bestandsnamen of de naam van een enkel bestand; in dit geval kunt u de speciale tekens "?" en "*" om één of meerdere tekens in de bestandsnaam te vervangen;

Commando - elk ander DOS-commando of programma dan FOR; als het nodig is om FOR te gebruiken, dan moet u in plaats van% x %% x specificeren.

Wanneer u dit commando gebruikt om bat-bestanden te schrijven, moet u er rekening mee houden dat namen in DOS-programma's een beperking hebben op de lengte van de naam. Om ervoor te zorgen dat het FOR-commando werkt met lange bestandsnamen, moet u eraan denken eerst het LFNFOR ON-commando uit te voeren om de werkingsmodus met lange namen in te schakelen en LFNFOR OFF om het uit te schakelen en terug te keren naar de standaard bestandslengte.

Veel functies met programma's, zoals het vergelijken van bestanden met bepaalde soorten extensies in de ene map met bestanden van hetzelfde type uit een andere map, het kopiëren van alle bestanden van de huidige map naar een andere, sequentiële uitvoering van bestanden met extensies van een bepaald type en namen die beginnen met getallen, kan worden gedaan met slechts één opdracht in het bat-bestand. De lancering van het programma kan worden gecombineerd met gebruikersverzoeken, wat het gemak van het werken met gegevens verbetert.

Overgangen in bat-bestanden

Voor het gemak van het controleren van de volgorde van het starten van commando's in bat-bestanden, gebruiken ze vaak springcommando's en labels waarlangs deze overgangen worden gemaakt.
Een label is elke regel in een uitvoerbaar bestand die begint met een dubbele punt. De labelnaam is de tekenset na de dubbele punt tot het einde van de regel of tot aan de eerste spatie, waarna de rest van de regel wordt genegeerd, die kan worden gebruikt als een opmerking bij het spronglabel.

Het sprongcommando wordt gespeld GOTO met de naam van het label gescheiden door een spatie. Als er geen parameter is of de naam van het label in het opdrachtbestand niet wordt gevonden, werkt het script niet meer aan deze opdracht. Voorbeeld:

REM (voer vereiste opdrachten uit).

In dit voorbeeld springt de sequentiële uitvoering van het batchbestand, het bereiken van GOTO zzz, naar label: zzz en gaat verder met REM, waarbij alles tussen het jump-commando en het gespecificeerde label wordt genegeerd.

Voorwaarden gebruiken bij het werken met bat-bestanden

Een bat-bestand kan al dan niet opdrachten uitvoeren, afhankelijk van verschillende omstandigheden, als de controle op het optreden van een IF-gebeurtenis erin wordt toegepast. Het formaat van dit commando is "IF condition command".

De aandoening wordt weergegeven door verschillende varianten van uitdrukkingen:

ERRORLEVEL-nummer - in het geval dat het eerder uitgevoerde programma eindigde met een exit-code die gelijk is aan of groter is dan de opgegeven numerieke waarde, is de voorwaarde waar.

LIJN 1 == LIJN 2 - in het geval van volledige overeenstemming van de lijnen, wordt de voorwaarde waar. In plaats van strings kunt u de tekens% 0 -% 9 vervangen, waarna de parameters van het opdrachtbestand worden vergeleken.

EXIST - bestandsnaam - als het opgegeven bestand bestaat, is de voorwaarde waar.

NOT - condition - als de opgegeven voorwaarde onwaar is, ontvangt de uitvoer van de opdracht een waarde 'waar'.

Opdrachten gebruikt in bat-bestanden

Als u op de knop "Start" klikt en de opdrachtregel (cmd) uitvoert, kunt u alles zien dat in het bat-bestand is ingevoegd, u kunt het gebruiken als een hulpmiddel voor het debuggen, als assistent, een programma om informatie over opdrachten te verkrijgen. Om dit te doen, typt u eenvoudig HELP. In dit geval wordt een lijst met commando's met korte beschrijvingen gegeven. Voor meer gedetailleerde informatie kunt u HELP invoeren met de naam van de vereiste opdracht.

Bat-bestanden gebruiken bij het maken van een back-up van gegevens

Batchbestanden maken het leven van systeembeheerders een stuk eenvoudiger in hun dagelijkse werk. De meest voorkomende toepassingen hiervoor zijn maken, verwijderen, hernoemen en meer. Dit alles is gebaseerd op het gebruik van de opdracht COPY bat-file. U kunt bijvoorbeeld een programma maken dat archiefkopieën maakt van documenten uit een geselecteerde map met gebruikersgegevens van bepaalde formaten, met uitzondering van bijvoorbeeld grote mediabestanden, en een back-up maakt in een map met de naam van de gebruiker en deze "File_copy_Command" noemt. knuppel". Daarna is het noodzakelijk om ervoor te zorgen dat het op een bepaald moment wordt gestart met behulp van de ingebouwde planner of door het programma zelf en daardoor de veiligheid van gebruikersgegevens te waarborgen.

Windows bat-bestanden zijn een handige manier om verschillende taken uit te voeren op een pc, die actief wordt gebruikt door computervakmensen. Ze stellen u in staat om alledaagse taken te automatiseren, hun uitvoeringstijd te verkorten en een complex proces om te zetten in iets dat haalbaar is voor een gewone gebruiker. Dit artikel presenteert de basisfuncties van batchbestanden en aanbevelingen om ze zelf te schrijven.

Automatisering eenvoudig gemaakt

Hoe maak je een bat-bestand aan? Volg hiervoor deze stappen:

  1. Maak in een teksteditor, bijvoorbeeld Kladblok of WordPad, een tekstdocument.
  2. Schrijf je commando's erin, beginnend met @echo, en dan (telkens op een nieuwe regel) - titel [naam van het batchscript], echo [weer te geven bericht] en pauzeer.
  3. Sla tekst op in een elektronisch document met de extensie .bat (bijvoorbeeld test.bat).
  4. Dubbelklik op het batchbestand dat u zojuist hebt gemaakt om te starten.
  5. Om het te bewerken, moet u er met de rechtermuisknop op klikken en het item "Wijzigen" in het contextmenu selecteren.

Het onbewerkte bestand ziet er ongeveer zo uit:

titel Dit is je eerste bat-bestandsscript!

echo Welkom bij het batchscript!

Meer details over de commando's van bat-bestanden en hun gebruik zullen hieronder worden besproken.

Stap 1: een programmascript maken

Stel dat een gebruiker vaak problemen heeft met het netwerk. Hij gebruikt de hele tijd de opdrachtregel, typt ipconfig en pingt Google om problemen met internet op te lossen. Na een tijdje realiseert de gebruiker zich dat het veel efficiënter zou zijn als hij een eenvoudig bat-bestand zou schrijven, het naar zijn USB-station zou schrijven en het zou uitvoeren op de computers die hij diagnosticeerde.

Een nieuw tekstdocument maken

Een batchbestand maakt het eenvoudig om repetitieve taken op uw computer uit te voeren met behulp van de Windows-opdrachtregel. Hieronder ziet u een voorbeeld van een script dat verantwoordelijk is voor het weergeven van tekst op het scherm. Voordat u een bat-bestand maakt, klikt u met de rechtermuisknop op een lege plek in de map en selecteert u Nieuw en vervolgens Tekstdocument.

Code toevoegen

Dubbelklikken op dit nieuwe tekstdocument opent de standaard teksteditor. U kunt het bovenstaande codevoorbeeld kopiëren en plakken in een tekstinvoer.

Behoud

Het bovenstaande script toont de tekst "Welkom bij het batchscript!" Een elektronisch document moet worden geschreven door het menu-item van de teksteditor "Bestand", "Opslaan als" te selecteren en vervolgens de gewenste naam voor het bat-bestand op te geven. Het moet worden aangevuld met de .bat-extensie (bijvoorbeeld welkom.bat) en klik op "OK". Voor de juiste weergave van het Cyrillische alfabet moet u er in sommige gevallen voor zorgen dat de juiste codering is geselecteerd. Als u bijvoorbeeld de console van het Russified Windows NT-systeem gebruikt, moet het document worden opgeslagen in CP866. Nu moet je dubbelklikken op de snelkoppeling naar het bat-bestand om het te activeren.

Maar op het scherm verschijnt:

"Welkom bij het batchscript! Druk op een willekeurige toets om door te gaan..."

Als het bat-bestand niet start, raden gebruikers aan om het register in te voeren en de sleutel te verwijderen:

"HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts \ .BAT \ UserChoice".

Denk niet dat dit alles is waar batchscripts toe in staat zijn. Scriptparameters zijn gewijzigde versies van opdrachtregelopdrachten, dus de gebruiker wordt alleen beperkt door hun mogelijkheden. En ze zijn behoorlijk uitgebreid.

Stap 2: enkele commando's leren kennen

Als een pc-gebruiker bekend is met het uitvoeren van DOS-consoleopdrachten, zal hij een wizard zijn voor het maken van programmascripts, omdat het dezelfde taal is. De regels in de bat-bestanden zullen de cmd.exe-interpreter alles vertellen wat ervan vereist is. Dit bespaart tijd en moeite. Daarnaast is het mogelijk om enige logica te definiëren (bijvoorbeeld eenvoudige lussen, conditionals, enz., die conceptueel vergelijkbaar zijn met procedureel programmeren).

Ingebouwde opdrachten

1. @echo is een bat-bestandsopdracht waarmee u het script op de opdrachtregel kunt zien werken. Het wordt gebruikt om de voortgang van de lopende code te bekijken. Als het batchbestand problemen heeft, zal deze opdracht de problemen snel isoleren. Toevoegen maakt het mogelijk om de uitvoering van de code snel te beëindigen, waardoor onnodige informatie op het scherm wordt vermeden.

2. Titel biedt dezelfde mogelijkheden als de tag in HTML, dat wil zeggen, het maakt een koptekst voor een batchscript in een opdrachtpromptvenster.</p><p>3. Roep het ene bat-bestand op vanuit een ander of een subroutine binnen één script. De vermogensfunctie berekent bijvoorbeeld het vermogen% 2 van% 1:</p><p>if% teller% gtr 1 (</p><p>set / een teller- = 1</p><p>endlocal & ingesteld resultaat =% prod%</p><p><img src='https://i0.wp.com/syl.ru/misc/i/ai/324915/1862019.jpg' width="100%" loading=lazy loading=lazy></p><p>4. Cls wist de opdrachtregel. Wordt gebruikt om te voorkomen dat eerdere uitvoer van externe code de voortgang van het huidige script verstoort.</p><p>5. Kleur stelt de kleur van het lettertype en de achtergrond in. De opdrachtkleur f9 zet bijvoorbeeld witte letters op een blauwe achtergrond. Commando zonder parameter herstelt de standaardinstellingen.</p><p>6. Echo wordt gebruikt om informatie uit te voeren en om dergelijke uitvoer in te schakelen (echo aan) of uit te schakelen (echo uit). Bijvoorbeeld het echo-commando. drukt een nieuwe regel af zonder punt, terwijl echo. - punt. Zonder parameters geeft de opdracht informatie weer over de huidige status - echo aan of echo uit.</p><p>7. Rem biedt dezelfde functionaliteit als de tag<! в HTML. Такая строка не является частью выполняемого кода. Вместо этого она служит для пояснения и предоставления информации о нем.</p><p>8. Met Pauze kunt u de uitvoering van bat-bestandsopdrachten onderbreken. Dit maakt het mogelijk om de uitgevoerde regels te lezen alvorens verder te gaan met het programma. In dit geval wordt het bericht "Om verder te gaan, drukt u op een willekeurige toets ..." op het scherm weergegeven.</p><p>9. Met Set kunt u omgevingsvariabelen bekijken of instellen. Met de schakeloptie / p vraagt ​​de opdracht de gebruiker om invoer en slaat deze op. Met de parameter / a kunt u eenvoudige rekenkundige bewerkingen uitvoeren en hun resultaat ook toewijzen aan een variabele. Als u met strings werkt, mogen er geen spaties voor of na het gelijkteken staan. Set geeft bijvoorbeeld een lijst met omgevingsvariabelen weer, set HOME geeft de waarden weer van argumenten die beginnen met "HOME", en set / p input = voer een geheel getal in: vraagt ​​om een ​​geheel getal en wijst dit toe aan de juiste variabele.</p><p>10. Start "" [website] start de opgegeven website in de standaardwebbrowser.</p><p>11. Indien dient om een ​​specifieke toestand te controleren. Als het waar is, wordt het commando dat erop volgt uitgevoerd. Er zijn 3 soorten voorwaarden:</p><ul><li>ERRORLEVEL-nummer - controleer de exit-code van de laatst uitgevoerde instructie op naleving of overschrijding van het opgegeven aantal. In dit geval geeft 0 de succesvolle voltooiing van de taak aan, en elk ander getal, meestal positief, geeft een fout aan. U kunt bijvoorbeeld geneste commando's gebruiken om de afsluitcode nauwkeurig te bepalen: als foutniveau 3, zo niet foutniveau 4, is echofout # 3 opgetreden.</li><li>String1 == string2 - controleer of twee strings overeenkomen. Als er bijvoorbeeld geen externe parameter is, zal het commando if "% 1" = = "" goto ERROR de besturing overdragen aan het label ERROR.</li><li>EXIST naam - controleer op het bestaan ​​van een bestand met de opgegeven naam. Bijvoorbeeld, indien niet aanwezig A: \ programma.exe KOPIE C: \ PROJECTS \ programma.exe A: kopieert programma.exe naar station A als het er niet is.</li> </ul><p>12. Else moet op dezelfde regel staan ​​als het If-commando. Geeft aan dat de volgende instructie moet worden uitgevoerd als de uitdrukking onwaar is.</p><p><img src='https://i0.wp.com/syl.ru/misc/i/ai/324915/1862021.jpg' width="100%" loading=lazy loading=lazy></p><p>13. For wordt gebruikt om bepaalde acties te herhalen met elk lid van de lijst. Het heeft het formaat voor %% argument in (list) do commando. Het argument kan elke letter van A tot Z zijn. Een lijst is een reeks strings gescheiden door spaties of komma's. Er kunnen ook jokertekens worden gebruikt. Bijvoorbeeld:</p><ul><li>voor %% d in (A, C, D) doe DIR %% d - geeft achtereenvolgens de mappen van stations A, C en D weer;</li><li>voor %% f in (* .TXT * .BAT * .DOC) do TYPE %% f - drukt de inhoud van alle .txt-, .bat- en.doc-bestanden in de huidige map af;</li><li>voor %% P in (% PATH%) doen indien aanwezig %% P \ *. BAT COPY %% P \ *. BAT C: \ BAT - kopieert alle batchbestanden die bestaan ​​in alle mappen van de zoekroute naar de map C : \ BAT.</li> </ul><p>14. Een dubbele punt (:) voor een woord vormt er een link van, waarmee je een deel van de programmacode kunt overslaan of terug kunt gaan. Het wordt gebruikt met de opdrachten Call en Goto, om aan te geven waar het bat-bestand moet worden uitgevoerd, bijvoorbeeld wanneer aan een bepaalde voorwaarde is voldaan:</p><p>15. Variabelen:</p><ul><li>%% a staat voor elk bestand in de map;</li><li>% CD% - huidige map;</li><li>% DATE% - systeemdatum, waarvan het formaat afhangt van de lokalisatie;</li><li>% TIME% - systeemtijd in de vorm van HH: MM: SS.mm;</li><li>% RANDOM% - gegenereerd pseudo-willekeurig getal in het bereik van 0 tot 32767;</li><li>% ERRORLEVEL% - afsluitcode geretourneerd door het laatst uitgevoerde commando of bat-script.</li> </ul><p>U kunt het deel van een string dat in een variabele zit, gegeven de positie en lengte, als volgt extraheren:</p><p>% [variabele]: ~ [start], [lengte]%. U kunt bijvoorbeeld de datum weergeven in het formaat DD / MM / JJJJ als JJJJ-MM-DD als volgt: echo% DATUM: ~ 6,4% -% DATUM: ~ 3,2% -% DATUM: ~ 0,2%.</p><p>16. (". \") - hoofdmap. Als u met de console werkt, moet u, voordat u de bestandsnaam wijzigt, verwijdert, enz., de opdrachtactie naar een specifieke map sturen. Wanneer u een batchbestand gebruikt, voert u het gewoon uit in elke gewenste map.</p><p>17,% cijfer - neemt de waarden van parameters die door de gebruiker zijn doorgegeven aan het bat-bestand. Kan worden gescheiden door spaties, komma's of dubbele punten. Cijfer is een getal van 0 tot 9. % 0 is bijvoorbeeld de waarde van de huidige opdracht. % 1 komt overeen met de eerste parameter, enzovoort.</p><p>18. Shift - het commando dat wordt gebruikt om de invoerparameters met één positie te verschuiven. Is van toepassing wanneer externe argumenten worden doorgegeven aan het batchbestand. Het volgende bat-bestand kopieert bijvoorbeeld de bestanden die zijn opgegeven als parameters op de opdrachtregel naar de D-schijf:</p><p>zo niet (% 1) == () ga naar volgende</p><p>Bovendien kunnen de volgende manipulaties worden uitgevoerd met de argumenten:</p><ul><li>% ~ - verwijder omringende aanhalingstekens;</li><li>% ~ f - breid de parameter uit tot de volledige padnaam samen met de stationsnaam;</li><li>% ~ d - schijfnaam tonen;</li><li>% ~ p - geef alleen het pad weer;</li><li>% ~ n - selecteer alleen de bestandsnaam van de parameter;</li><li>% ~ x - bewaar alleen de extensie;</li><li>% ~ s - converteer pad naar korte naamweergave;</li><li>% ~ a - bestandskenmerken uitpakken;</li><li>% ~ t - geef de datum en tijd van aanmaak weer;</li><li>% ~ z - geef de bestandsgrootte weer;</li><li>% ~ $ PATH: - Doorzoekt de mappen die worden vermeld in de omgevingsvariabele PATH en breidt de parameter uit tot de eerste overeenkomende volledige naam die is gevonden, of retourneert een lege tekenreeks bij een fout.</li> </ul><p><img src='https://i1.wp.com/syl.ru/misc/i/ai/324915/1862020.jpg' width="100%" loading=lazy loading=lazy></p><h2>Jokertekens</h2><p>Veel commando's accepteren bestandsnaampatronen - tekens die overeenkomen met een groep bestandsnamen. Jokertekens zijn onder meer:</p><ul><li>* (sterretje) - geeft een reeks tekens aan;</li><li>? (vraagteken) - vervangt één (of 0) teken anders dan een punt (.).</li> </ul><p>De opdracht dir * .txt geeft bijvoorbeeld een lijst met txt-bestanden weer en dir ???. Txt - een lijst met tekstdocumenten waarvan de naam niet meer dan 3 letters bevat.</p><h2>Functies</h2><p>Net als subroutines worden ze geëmuleerd met call, setlocal, endlocal en labels. Het volgende voorbeeld toont de mogelijkheid om een ​​variabele te definiëren waarin het resultaat wordt opgeslagen in de oproepregel:</p><p>bel: zeg resultaat = wereld</p><p><img src='https://i0.wp.com/syl.ru/misc/i/ai/324915/1862022.jpg' width="100%" loading=lazy loading=lazy></p><h2>Berekeningen</h2><p>In bat-bestanden kunt u eenvoudige rekenkundige bewerkingen uitvoeren met 32-bits gehele getallen en bits met behulp van de opdracht set / a. Het maximaal ondersteunde aantal is 2 ^ 31 - 1 = 2147483647 en het minimum is - (2 ^ 31) = -2147483648. De syntaxis is vergelijkbaar met de programmeertaal C. Rekenkundige operatoren zijn: *, /,%, +, -. In bat-file% (rest van gehele deling) moet worden ingevoerd als "%%".</p><p>Binaire operatoren interpreteren een getal als een 32-bits reeks. Deze omvatten: ~ (bitsgewijs NIET of complementair), & (AND), | (OF), ^ (exclusief OF),<< (сдвиг влево), >> (naar rechts schuiven). De logische ontkenningsoperator is! (Uitroepteken). Het verandert 0 in 1 en een waarde die niet nul is in 0. De combinatie-operator is, (komma), waarmee meer bewerkingen kunnen worden uitgevoerd in een enkele set-opdracht. De gecombineerde toewijzingsoperatoren + = en - = in de uitdrukkingen a + = b en a- = komen overeen met de uitdrukkingen a = a + b en a = a-b. * =,% =, / =, & =, | =, ^ =, >> =,<<=. Приоритет операторов следующий:</p><p>(); %+-*/; >>, <<; &; ^; |; =, %=, *=, /=, +=, -=, &=, ^=, |=, <<=, >>=; ,</p><p>Literalen kunnen worden ingevoerd als decimaal, hexadecimaal (met voorloop 0x) en octaal (met voorloopnul). Bijvoorbeeld, set / a n1 = 0xffff kent n1 een hexadecimale waarde toe.</p><h2>Externe opdrachten</h2><ul><li>Exit wordt gebruikt om de DOS-console af te sluiten of (met de /b-optie) alleen het huidige bat-bestand of subroutine.</li><li>Ipconfig is een klassieke consoleopdracht die netwerkinformatie weergeeft. Het bevat MAC- en IP-adressen en subnetmaskers.</li><li>Ping pingt een IP-adres door er datapakketten naar te sturen om de afstand en latentie (respons) te schatten. Wordt ook gebruikt om een ​​pauze in te stellen. Bijvoorbeeld, ping 127.0.01 -n 6 pauzeert de uitvoering van de code gedurende 5 seconden.</li> </ul><p>De bat-opdrachtbibliotheek is enorm. Gelukkig zijn er veel pagina's op het web die ze allemaal opsommen, samen met batchscriptvariabelen.</p><p><img src='https://i0.wp.com/syl.ru/misc/i/ai/324915/1862017.jpg' width="100%" loading=lazy loading=lazy></p><h2>Stap 3: het bat-bestand schrijven en uitvoeren</h2><p>Het volgende script zal uw dagelijkse online activiteiten aanzienlijk vereenvoudigen. Wat als u direct al uw favoriete nieuwssites wilt openen? Aangezien de scripts console-opdrachten gebruiken, kunt u een script maken dat elke nieuwsfeed in één browservenster opent.</p><p>Vervolgens moet u het proces van het maken van een bat-bestand herhalen, te beginnen met een leeg tekstdocument. Om dit te doen, klikt u met de rechtermuisknop op een lege ruimte in een map en selecteert u "Nieuw" en vervolgens - "Tekstdocument". Nadat u het bestand hebt geopend, moet u het volgende script invoeren, waarmee de belangrijkste Russisch-talige media die op internet beschikbaar zijn, worden gestart:</p><p>start "" http://fb.ru</p><p>start "" http://www.novayagazeta.ru</p><p>start "" http://echo.msk.ru</p><p>start "" http://www.kommersant.ru</p><p>start "" http://www.ng.ru</p><p>start "" http://meduza.io</p><p>start "" https://news.google.com/news/?ned=ru_ru&hl=ru</p><p>Dit script bevat start ""-commando's die meerdere tabbladen openen. U kunt de voorgestelde links vervangen door andere naar keuze. Nadat u het script hebt ingevoerd, gaat u naar het menu van de editor "Bestand" en vervolgens naar "Opslaan als ..." en schrijft u een document met de extensie .bat, waarbij u de parameter "Bestandstype" wijzigt in "Alle bestanden" (*. * ).</p><p>Na het opslaan, om het script uit te voeren, dubbelklikt u erop. De webpagina's worden direct geladen. U kunt dit bestand eventueel op uw bureaublad plaatsen. Dit geeft je direct toegang tot al je favoriete sites.</p><h2>Organisator</h2><p>Als u meerdere bestanden per dag uploadt, zullen er al snel honderden in de map Downloads terechtkomen. U kunt een script maken dat ze op type rangschikt. Het is voldoende om het .bat-bestand met het programma in een map met ongeorganiseerde gegevens te plaatsen en erop te dubbelklikken om het uit te voeren:</p><p>rem Elk bestand in de map</p><p>voor %% a in (". \ *") do (</p><p>rem controleren op extensie en niet behorend tot het opgegeven script</p><p>indien "%% ~ xa" NEQ "" indien "%% ~ dpxa" NEQ "% ~ dpx0" (</p><p>rem controleer op het bestaan ​​van een map voor elke extensie, en als deze niet bestaat, maak dan</p><p>indien niet aanwezig "%% ~ xa" mkdir "%% ~ xa"</p><p>rem verplaats bestand naar map</p><p>verplaatsen "%% a" "%% ~ dpa %% ~ xa \"</p><p>Als gevolg hiervan worden de bestanden in de map "Downloads" gesorteerd in mappen, waarvan de namen overeenkomen met hun extensie. Het is zo eenvoudig. Dit batchscript werkt met elk type gegevens, of het nu gaat om documenten, video of audio. Zelfs als de pc ze niet ondersteunt, maakt het script nog steeds een map met het juiste label. Als er al een JPG- of PNG-map is, zal het programma de bestanden met deze extensie daar gewoon naartoe verplaatsen.</p><p>Dit is een eenvoudige demonstratie van waartoe batchscripts in staat zijn. Of het nu gaat om het organiseren van bestanden, het openen van meerdere webpagina's, het hernoemen van grote hoeveelheden of het maken van kopieën van belangrijke documenten voor een eenvoudige taak, een batchscript kan u helpen om de vervelende klus met een paar klikken te klaren.</p> <p>Nu is het tijd om te overwegen <b>bat-commando's</b>... Kortom, de commando's die in cmd zijn ingevoerd, worden hier gebruikt, maar er zijn er enkele die niet logisch zijn om in de opdrachtregel te gebruiken.</p><h2>Een volledige lijst met bat-commando's krijgen</h2><p>Om alle commando's te beschrijven, moet je een aantal artikelen schrijven, zodat je je niet overbelast, we zullen ons beperken tot één artikel en rekening houden met compacte informatie. Zoals u weet, zijn het bat-bestand en de cmd-opdrachten hetzelfde om er een lijst van te krijgen of. Voer het help-commando in, dat in het Engels is geschreven als help, en druk op Enter. Als resultaat zal de computer alle commando's met een korte beschrijving in de cmd-interface schrijven.</p><p>Na het bekijken van deze lijst, wil je meer in detail weten wat een specifiek bat-commando is. Laten we bijvoorbeeld het for-commando selecteren, om het te beschrijven, help voor of voor /? en klik op invoeren. Als resultaat krijgt u online hulp bij de opdracht, deze is omvangrijk, dus u moet een willekeurige toets meerdere keren indrukken om vertrouwd te raken met de volgende beschrijving. U kunt dus de syntaxis van een bepaald commando bestuderen.</p><h2>Bat-bestand commando's</h2><p>Laten we nu kennis maken met de commando's die in het batchbestand worden gebruikt, met een korte beschrijving. Ze zijn echter niet hoofdlettergevoelig. We hebben ze in hoofdletters vermeld om u te helpen bij de identificatie.</p><table><tbody><tr><td width="319">@ </td><td width="319">Alle uitgevoerde bat-commando's worden op het scherm weergegeven, om onnodige dingen te verwijderen, wordt een "hond" voor het commando geplaatst. Vaak gebruikt met @echo uit.</td> </tr><tr><td width="319">set</td><td width="319">Stelt variabelen in. Bijvoorbeeld setper = c: \ windows hier wijzen we per pad toe. U kunt een omvangrijke waarde naar een variabele schrijven en deze in een script specificeren, waardoor de code compacter wordt. Als de inhoud verandert, hoeft u niet overal de waarden te wijzigen waar deze variabele wordt verstrekt.</td> </tr><tr><td width="319">:: </td><td width="319">Een van de twee methoden om commentaar te geven in een bat-bestand zonder deze regel op het scherm weer te geven.</td> </tr><tr><td width="319">: LABEL</td><td width="319">Wanneer u een dubbele punt aan een woord toevoegt, wordt er een label gemaakt waarmee u naar verschillende secties van het batchbestand kunt gaan. Het label kan een andere naam hebben, LABEL is een voorbeeld.</td> </tr><tr><td width="319">TELEFOONGESPREK</td><td width="319">Bat-opdracht die het ene batchbestand in het andere oproept. Alle parameters beschreven in een van de bestanden kunnen naar elkaar worden overgedragen.</td> </tr><tr><td width="319">KEUZE</td><td width="319">Selectie commando.</td> </tr><tr><td width="319">CLS</td><td width="319">Wist de inhoud van de shell zoals weergegeven boven de CLS.</td> </tr><tr><td width="319">ECHO</td><td width="319">Geeft een bericht weer op het scherm. Bijvoorbeeld: "ECHO Hallo!" verschijnt "Hallo!" Als u @ECHO niet aan het begin van het batchbestand gebruikt, ziet u het pad naar het batbestand en twee berichten, wat overbodig is. U kunt een lege tekenreeks maken door ECHO te typen. met een punt aan het einde.</td> </tr><tr><td width="319">UITGANG</td><td width="319">Beëindigt het huidige batchscript.</td> </tr><tr><td width="319">GOTO LABEL</td><td width="319">Wordt gebruikt om naar een specifiek label te navigeren, in dit geval LABEL, en het script erna uit te voeren.</td> </tr><tr><td width="319">ALS</td><td width="319">Net als in de bat-programmeertalen, vertegenwoordigt het if-commando de vervulling van een voorwaarde, afhankelijk van welke het script het ene of het andere pad zal volgen. Zie de help voor de syntaxis.</td> </tr><tr><td width="319">voor</td><td width="319">Een cyclus die wordt gebruikt om de uitvoering van dezelfde acties te organiseren.</td> </tr><tr><td width="319">PAUZE</td><td width="319">Als u het resultaat van het script wilt zien, maar het is actief en het venster sluit snel, gebruik dan PAUZE. Hiermee kunt u het resultaat zien en het script voltooien door op een willekeurige knop te drukken.</td> </tr><tr><td width="319">REM</td><td width="319">De tweede manier om commentaar te geven. In tegenstelling tot :: wordt op het scherm afgedrukt als er geen @ECHO off-constructie is.</td> </tr><tr><td width="319">VERSCHUIVING</td><td width="319">Wijzigt de positie van de batchparameters in het bat-bestand.</td> </tr><tr><td width="319">BEGIN</td><td width="319">Start programma's, vensters, enz. Heeft veel attributen (zie help).</td> </tr></tbody></table><p>Dit is de basis van de bat-commando's. De syntaxis van sommige elementen is moeilijk voor beginners en vereist enige kennis. Alles <i>bat-bestandsopdrachten</i> hierboven beschreven, worden oppervlakkig bekeken om hun doel te achterhalen, en de volledige syntaxis is te vinden in de Windows Help.</p> <p><b>Iedereen kan bat-bestanden schrijven!</b></p><p><b>Opdrachtprocessor</b></p><p>Veel besturingssystemen, waaronder die ontwikkeld door Microsoft, bevatten een opdrachtprocessor. Dit is de naam van een programma dat de uitvoering van allerlei acties initieert als reactie op opdrachten die door de gebruiker vanaf het toetsenbord worden ingevoerd. Deze acties bestaan ​​in principe uit het starten van de nodige programma's met bepaalde parameters. Maar niet alleen; verder zullen we zien dat sommige commando's direct door de shell worden uitgevoerd. Kort gezegd zijn dit de opdrachten die dienen om de context en volgorde van de uitvoering van opdrachten te regelen. We zullen echter niet te diep nadenken over de aard van commando's, althans niet onnodig. Wat nog belangrijker is, is dat elk programma dat technisch mogelijk is om vanaf de opdrachtregel te draaien, door de shell wordt behandeld als een opdracht. Het maakt geen onderscheid tussen de "native" commando's die oorspronkelijk in het besturingssysteem zijn ingebouwd en de programma's die erop zijn geïnstalleerd.</p><p>Om de opdrachtprocessor te starten:</p><ol><p>Klik op de knop <b>Begin</b>... Het hoofdmenu wordt weergegeven.</p><p>Selecteer Uitvoeren in het hoofdmenu. Er wordt een dialoogvenster weergegeven <b>Het programma starten</b>.</p><p>Voer in het vak Openen de tekenreeks in <b>cmd</b>.</p><p>Klik op de knop <b>oke</b>... Er wordt een shell-venster weergegeven.</p> </ol><p><b>Opdrachtregel en opdrachten</b></p><p>Het schaalvenster ziet er in zijn oorspronkelijke vorm somber uit en het is voor de meeste mensen niet erg handig om ermee te werken. Het is veel gemakkelijker om bestandsbeheerders in Norton Commander-stijl te gebruiken. Ze bieden zowel een middel voor snelle navigatie door het bestandssysteem als een tijdslimiet voor het invoeren van opdrachten.</p><p>Om de opdracht in te voeren:</p><ol><p>Typ de opdrachttekst op de opdrachtregel.</p><p>Druk op de toets <b>Binnenkomen</b>.</p> </ol><p>De opdrachten voor de opdrachtprocessor en het besturingssysteem worden beschreven in de documentatie bij het besturingssysteem. Deze documentatie is deels opgenomen in het besturingssysteem zelf. Om toegang te krijgen, gebruik je het commando <b>helpen</b>... Met deze opdracht wordt een lijst met beschikbare opdrachten op het scherm weergegeven. Om een ​​beschrijving van een specifieke opdracht te krijgen, als parameter, moet de opdracht <b>helpen</b> haar naam moet worden vermeld. De opdrachtregel die in de volgende lijst wordt weergegeven, geeft de opdrachtbeschrijving weer: <b>voor</b>.</p><p>Als u probeerde de opdracht in te voeren: <b>helpen</b>, heb je waarschijnlijk gemerkt dat het resultaat van haar werk (de zogenaamde kwestie) niet op één scherm past. Hetzelfde probleem doet zich voor met de opdrachtbeschrijvingstekst <b>voor</b>... Het goede nieuws is dat de uitvoer kan worden omgeleid naar een bestand. De opdrachtregel die in de volgende lijst wordt weergegeven, genereert het bestand: <b>commands.txt</b> met een lijst van alle MS-DOS-commando's.</p><p>help> commando's.txt</p><p>Om een ​​bestand met een opdrachtbeschrijving te genereren: <b>voor</b>, moet u zo'n opdracht geven (u kunt de naam van het uitvoerbestand naar wens maken).</p><p>help voor> voor.txt</p><p>In totaal hebben moderne besturingssystemen van Microsoft Corporation iets minder dan 80 opdrachten en het is onmogelijk om ze in één artikel te beschrijven. Hier kunnen we slechts enkele commando's noemen die nuttig zijn voor het automatiseren van bestandsverwerking en laten zien hoe ze te gebruiken. Deze opdrachten worden in de volgende voorbeelden gebruikt. U kunt de details altijd per opdracht verduidelijken <b>helpen</b> of in de referentie.</p><p><b>kopiëren</b>- kopiëren van een of meer bestanden;</p><p><b>del</b>- het verwijderen van een of meer bestanden;</p><p><b>Actie</b>- het verplaatsen van een of meer bestanden of mappen;</p><p><b>hernoemen</b>(afgekort <b>ren</b>) - hernoem een ​​of meer bestanden of mappen;</p><p><b>xcopy</b>- kopiëren van een boom met submappen;</p><p><b>mkdir</b>(afgekort <b>md</b>) - een map maken;</p><p><b>rmdir</b>(afgekort <b>rd</b>) - een map verwijderen.</p><p>Een van de algemene regels van de syntaxis van MS-DOS-opdrachten is dat u bij het opgeven van parameters eerst de bron opgeeft en vervolgens het resultaat. Als we bijvoorbeeld het bestand willen verplaatsen <b>bier.txt</b> uit catalogus <b>doos</b> catalogiseren <b>tafel</b>, moeten we de opdracht invoeren die in de volgende lijst wordt weergegeven.</p><p>verhuisdoos \ beer.txt tabel</p><p>Eerst wat te verhuizen, dan waarheen.</p><p>Als we het bestand willen hernoemen: <b>lena.txt</b> archiveren <b>natasha.txt</b>, dan moet de opdracht worden geschreven zoals hieronder wordt weergegeven.</p><p>ren lena.txt natasha.txt</p><p>Eerst wat te hernoemen, dan wat te hernoemen.</p><p><b>Huidige map. Absolute en relatieve paden</b></p><p>Bij het werken met bestandscommando's wordt het concept van de huidige directory extreem belangrijk. Het feit is dat wanneer we een bestand specificeren als een opdrachtparameter, we altijd een van de twee mogelijke manieren gebruiken om ernaar te verwijzen: ofwel een absoluut pad of een relatief pad. In het volledige pad geven we alles aan, beginnend met de schijf (of de netwerknaam van de computer), bijvoorbeeld <b>d: \ misha \ box \ beer.txt</b>... Welke directory ook actueel is op het moment dat de opdracht wordt ingevoerd, het volledige pad komt overeen met hetzelfde bestand. Voor een relatief pad is de huidige directory het startpunt. Het eenvoudigste geval voor een relatief pad is een bestandsnaam. In de context van het uitvoeren van opdrachten betekent dit een bestand met die naam dat zich in de huidige map bevindt.</p><p>Om het relatieve pad naar de huidige map te schrijven, is er een voorwaardelijke invoer <b>. </b>(punt). Om het relatieve pad naar de map te schrijven die de huidige map bevat, is er een voorwaardelijke invoer <b>.. </b>(twee puntjes). De opdracht in de volgende lijst kopieert alle bestanden van de huidige map naar de map <b>buurman</b> ernaast gelegen.</p><p>kopieer *.*.\buur</p><p><b>Opdrachtbestanden</b></p><p>Tot nu toe, toen we voorbeelden gaven, gingen we ervan uit dat we commando's elke keer handmatig invoerden. Bij het verwerken van een groot aantal bestanden of het systematisch uitvoeren van dezelfde commando's wordt dit omslachtig. Daarom biedt de opdrachtprocessor de mogelijkheid om opdrachtbestanden uit te voeren. Een batchbestand is een tekstbestand met opdrachten (of minstens één opdracht). Een voorbeeld van een batchbestand wordt weergegeven in de volgende lijst. Probeer te raden wat dit batchbestand doet.</p><p>help kopiëren> kopiëren.help</p><p>help verhuizen> move.help</p><p>verplaatsen * .help msdos-help</p><p>Als het doel van dit bestand voor u een mysterie blijft, probeer het dan daadwerkelijk te maken en uit te voeren. Het is gebruikelijk dat batchbestanden de extensie . krijgen <b>knuppel</b>... Hierdoor worden bestanden van dit type herkend door de opdrachtprocessor. Dit bestand kan bijvoorbeeld een naam hebben: <b>make-help.bat</b>.</p><p>Een batchbestand uitvoeren:</p><ol><p>Voer de naam in als een opdracht. Daarna wordt het batchbestand uitgevoerd.</p> </ol><p>In een batchbestand neemt elke opdracht één regel in beslag. Om precies te zijn, er is een manier om één commando op meerdere opeenvolgende regels te plaatsen, hiervoor plaatst u direct voor elke regelinvoer het "cover"-teken <b>^ </b>... (Elke omslag moet het laatste teken op zijn regel zijn; er mogen geen spaties of tabs achter staan). Een voorbeeld van een dergelijke opdracht wordt getoond in de volgende lijst.</p><p>indien aanwezig disser.txt ^</p><p>kopieer disser.txt ^</p><p>d: \ wetenschap \ papers \ concepten \ bronnen</p><p>Maar voor de eenvoud, om niet elke keer een voorbehoud te maken, gaan we ervan uit dat dit in zekere zin één lange "logische" regel is.</p><p>Wanneer een commandobestand wordt uitgevoerd, scant de commandoprocessor het commandobestand van boven naar beneden van de eerste tot de laatste regel en voert de commando's uit in de volgorde waarin hij ze vindt. Hij voert ze als een geheel uit alsof we ze allemaal handmatig hebben ingevoerd. In het algemeen omdat sommige commando's zich iets anders gedragen wanneer ze handmatig worden ingevoerd en wanneer ze worden uitgevoerd vanuit een batchbestand.</p><p>Vooruitkijkend, laten we zeggen dat, indien nodig, de volgorde van het uitvoeren van commando's kan worden gewijzigd met behulp van stuurcommando's (die mogelijk verband houden met een dergelijke behoefte, een aparte vraag).</p><p>Verwar de huidige map niet met de map waarin het batchbestand dat wordt uitgevoerd zich bevindt. Stel dat de huidige map is <b>het werk</b>, het bevat de directory <b>hulpmiddelen</b> en de map tools bevat batchbestanden. Je begint een van hen met het commando <b>tools \ collect-images.bat</b>... Dus, "vanuit het oogpunt" van dit batchbestand, zal de huidige map nog steeds zijn <b>het werk</b>, maar niet <b>hulpmiddelen</b>.</p><p><b>Commentaar op het batchbestand en de uitgifte ervan. Echo- en rem-opdrachten</b></p><p>Een batchbestand is in wezen een programma dat is geschreven in de taal van de shell van het besturingssysteem. De tekst van het programma wordt verondersteld te worden voorzien van commentaar, zodat, als we er een tijdje later op terugkomen, niet pijnlijk onthouden waar dit programma voor is en hoe het is ingericht.</p><p>Het MS-DOS-commandosysteem biedt een commando voor commentaar <b>rem</b>... Dit is een dummy-opdracht die geen acties impliceert, maar u in staat stelt om willekeurige tekst op de regel achter uw naam te schrijven. Bovendien ziet de opdrachtverwerker het niet als een syntaxisfout. Een voorbeeld van het opmaken van een batchbestand met opmerkingen wordt weergegeven in de volgende lijst.</p><p>rem ********************************************** * ***</p><p>rem Help-bestanden genereren</p><p>help kopiëren> kopiëren.help</p><p>help verhuizen> move.help</p><p>verplaatsen * .help msdos-help</p><p>Let op de lege regels die het batchbestand in "paragrafen" verdelen. Deze eenvoudige techniek maakt het batchbestand beter leesbaar.</p><p>Bij het uitvoeren van het bovenstaande batchbestand worden alle opdrachten op het scherm weergegeven terwijl ze worden uitgevoerd, wat niet altijd handig is. De uitgifte van opdrachten kan worden uitgeschakeld met behulp van de opdracht <b>@echo uit</b>... Het symbool "hond" voor het commando <b>echo</b> betekent dat dit commando zelf moet worden uitgevoerd in de "stille" modus. We kunnen het commando net zo goed niet gebruiken <b>echo uit</b>, en plaats een "hond" voor elk team.</p><p>In veel gevallen is het vereist dat het commandobestand bepaalde berichten naar het scherm (of naar een bestand) stuurt. In sommige gevallen kunnen dit foutmeldingen zijn, in andere gevallen informatieve berichten die aan de gebruiker van het batchbestand uitleggen wat er op dit moment gebeurt, soms vormen we een ander nuttig bestand met het batchbestand. Dezelfde echo-opdracht wordt gebruikt om berichten weer te geven. De tekst van het weergegeven bericht wordt er als parameter aan doorgegeven. De lijst met het verbeterde batchbestand wordt hieronder weergegeven.</p><p>rem ********************************************** * ***</p><p>rem Help-bestanden genereren voor de opdrachten kopiëren en verplaatsen</p><p>rem ********************************************** * ***</p><p>@echo Help-bestanden genereren. Een seconde ...</p><p>rem Help-bestanden genereren</p><p>help kopiëren> kopiëren.help</p><p>help verhuizen> move.help</p><p>rem Maak een map om helpbestanden op te slaan</p><p>rem Verplaats de helpbestanden naar de voorbereide map</p><p>verplaatsen * .help msdos-help</p><p>echo Klaar!</p><p><b>Parameters doorgeven aan het batchbestand</b></p><p>Stel dat we een batchbestand willen maken dat eerst een help genereert met een beschrijving van een door de gebruiker gedefinieerde opdracht, en deze vervolgens laadt voor weergave in Kladblok. De truc is om op de een of andere manier te vertellen in welk commando we deze keer geïnteresseerd zijn de volgende keer dat het batchbestand wordt gestart.</p><p>Om dit probleem op te lossen, is voorzien in een parameterverwerkingsmechanisme. Het werkt heel eenvoudig. Als de gebruiker bij het starten van het batchbestand verschillende parameters heeft opgegeven, geven we in de tekst van het batchbestand de eerste ervan aan met het item <b>%1 </b>, de tweede invoer <b>%2 </b>, derde invoer <b>%3 </b> enzovoort. We gebruiken deze aanduidingen in de tekst van het batchbestand op ongeveer dezelfde manier als in natuurlijke spraak met voornaamwoorden.</p><p>De tekst van het opdrachtbestand dat het probleem oplost, wordt weergegeven in de volgende lijst. Let op het commando <b>helpen</b>... De eerste parameter van het batchbestand wordt eraan doorgegeven als parameter.</p><p>rem We vormen een bestand met een beschrijving van het commando,</p><p>rem wiens naam werd doorgegeven door parameter</p><p>help% 1> help.tmp</p><p>rem Laad het beschrijvingsbestand in de Kladblok-editor</p><p>kladblok help.tmp</p><p>Stel dat we dit batchbestand de naam geven: <b>show-help.bat</b>... Om bijvoorbeeld een opdrachtbeschrijving in Kladblok te laden, <b>dir</b>, moeten we de opdracht als volgt invoeren.</p><p>show-help.bat map</p><p>Het volgende opdrachtbestand maakt een map aan met de naam die is opgegeven in de eerste parameter en schrijft een bestand met de opdrachtbeschrijvingstekst die is opgegeven in de tweede parameter.</p><p>rem Voorbeeld batchbestand met twee parameters</p><p>rem Maak een map met de naam gegeven door de eerste parameter</p><p>rem Maak een bestand met een opdrachtbeschrijving erin,</p><p>rem gegeven als de tweede parameter</p><p>help% 2>% 1 \% 2.help</p><p>Wat gebeurt er als de gebruiker bij het uitvoeren van dit batchbestand niet twee, maar vier parameters opgeeft? Het is oké, ze zullen zich nergens mee bemoeien, ze zullen gewoon niet gebruikt worden. Maar wat als de gebruiker alleen de eerste parameter opgeeft? De tweede parameter is leeg. Het effect is als volgt: het batchbestand wordt uitgevoerd, maar als op de plaats van schrijven <b>%2 </b> er is niets. Het help-commando genereert een lijst met alle commando's en plaatst deze in een bestand met een lege naam en de extensie .help. Als de gebruiker dit bestand uitvoert zonder parameters op te geven, dan wanneer de opdrachtprocessor de opdracht probeert uit te voeren <b>md</b>(onthoud dat het de bedoeling is om een ​​map aan te maken), we zullen een syntaxisfoutbericht ontvangen, omdat het md-commando een parameter moet hebben.</p><p>Het gebruik van parameters schept dus grote kansen, maar kan de zaken aanzienlijk compliceren. Om ervoor te zorgen dat het opdrachtbestand altijd correct werkt, is het noodzakelijk om de juistheid van de door de gebruiker opgegeven parameters te controleren en op de een of andere manier te reageren op onvolledige of onjuiste invoergegevens. U kunt dit natuurlijk niet doen, maar een onjuist werkend batchbestand kan in brand vliegen, vooral als het gaat om het verwijderen of overschrijven van gegevens.</p><p><b>Variabelen. Opdracht instellen</b></p><p>Een variabele is een benoemde waarde. In programmeerboeken wordt een variabele meestal vergeleken met een envelop met een naam erop. Je kunt iets in de envelop doen, bijvoorbeeld een bepaald bedrag - dit is de waarde ervan. Net als bij de envelop kan de waarde van de variabele worden gewijzigd.</p><p>Om een ​​variabele te declareren en er tegelijkertijd een waarde aan toe te kennen, gebruik je het commando <b>set</b>... Een voorbeeld van het schrijven van deze opdracht wordt getoond in de volgende lijst.</p><p>Om de waarde van een variabele op te halen, plaatst u de naam tussen twee procenttekens, zoals hieronder weergegeven.</p><p>rem Compiler voor helpbestanden in CHM-formaat</p><p>set help_compiler = c: \ HTML Help Workshop \ hcc.exe</p><p>rem Project van het helpbestand van de module "Magazijn"</p><p>set store_hpj = help \ sources \ store \ store.hpj</p><p>rem Project van het helpbestand van de module "Verkoop"</p><p>set sales_hpj = help \ sources \ sales \ sales.hpj</p><p>rem Help-bestanden compileren</p><p>% help_compiler%% store_hpj%</p><p>% help_compiler%% sales_hpj%</p><p>Deze lijst laat zien hoe variabelen nuttig zijn.</p><p>Ten eerste laten ze in plaats van een lang fragment (bijvoorbeeld het pad naar de compiler van helpbestanden) een kort synoniem gebruiken in het batchbestand. Het is op zijn minst handig.</p><p>Ten tweede voorkomen ze herhaling in de tekst van het batchbestand van fragmenten die in de toekomst kunnen veranderen. Stel je voor dat we Microsoft HTML Workshop opnieuw hebben geïnstalleerd in een andere map. Als een variabele in het opdrachtbestand wordt gebruikt om het pad ernaar toe te schrijven, is het voldoende om slechts één regel in het opdrachtbestand te corrigeren, namelijk die waarin de waarde van de variabele is toegewezen <b>help_compiler</b>... Als we het pad naar de compiler zouden schrijven elke keer dat het moet worden aangeroepen, dan zouden we na het wijzigen van het pad elke regel moeten corrigeren. In het gegeven voorbeeld zijn er twee, maar in een echt project kunnen er vijf of vijftien zijn met hetzelfde succes, afhankelijk van het aantal helpbestanden dat we willen compileren. Het probleem is niet dat het moeilijk is om elke regel handmatig te corrigeren (niemand heeft immers de commando's "kopiëren" en "plakken" geannuleerd), maar dat dit de kans op een onbedoelde fout enorm vergroot.</p><p>De parameters van het batchbestand zijn ook variabelen, maar ze verschillen van gewone variabelen doordat hun waarden worden ingesteld wanneer het batchbestand wordt gestart. In wat volgt, sprekend over variabelen, vooral over het werken met hun waarden, zullen we ook rekening houden met de parameters van het batchbestand, in ieder geval bij gebrek aan expliciete bedenkingen hierover.</p><p>Bij het schrijven van batchbestanden wordt vaak de volgende techniek gebruikt: verschillende waarden van variabelen worden naast elkaar aangegeven (of afgewisseld met symbolen of strings), om een ​​nieuwe betekenisvolle betekenis te krijgen. Een voorbeeld wordt getoond in de volgende lijst.</p><p><b>Voorwaarden controleren en opties kiezen. Als en ga naar commando's</b></p><p>Met de opdracht if kunt u in een batchbestand groepen opdrachten markeren die al dan niet worden uitgevoerd, afhankelijk van bepaalde voorwaarden. Waar is het voor?</p><p>Conditiecontrole is bijna een noodzakelijke maatregel bij het maken van batchbestanden die parameters gebruiken. Alvorens met het werk te beginnen, moet het batchbestand er in het algemeen voor zorgen dat de juiste set parameters eraan wordt doorgegeven. Anders is er een groot risico dat het verkeerd of zonder resultaat wordt uitgevoerd en hoeft de gebruiker alleen maar te raden wat het probleem is. Bovendien, als het batchbestand gegevens verwijdert, verplaatst of overschrijft, kan het met onjuiste parameters zelfs schade veroorzaken.</p><p>De volgende lijst toont het reeds bekende batchbestand voor het samenstellen van het helpbestand. Controle van de eerste parameter voor niet-leeg toegevoegd aan het begin van het batchbestand. Let op deze syntaxisfunctie: het dubbele gelijkteken wordt gebruikt voor de vergelijkingsbewerking. Als de eerste parameter niet leeg blijkt te zijn, wordt het goto-commando geactiveerd, dat de opdrachtprocessor naar het opgegeven label "gooit". In dit geval is de naam van dit label compileren. Merk op dat waar het label is, de naam wordt voorafgegaan door een dubbele punt, maar niet in het goto-commando. Als de eerste parameter leeg is, gaat de shell door naar de volgende regel, die een foutmelding weergeeft. En dan naar de volgende, die het helemaal aan het einde van het bestand naar het label met de naam gooit <b>finish</b>.</p><p>zo niet "% 1" == "" ga naar compileren</p><p>rem Als de parameter leeg is, geef dan een foutmelding</p><p>echo Help-bestand projectnaam niet gespecificeerd</p><p>rem en ga naar het einde van het batchbestand</p><p>rem naar het eindlabel</p><p>rem Dit is een label met de naam compile</p><p>rem Hieronder staan ​​de compilatiecommando's</p><p>rem Pad naar de compiler van helpbestanden</p><p>set help_compiler = "c: \ Program Files \ HTML Help Workshop \ hhc.exe"</p><p>rem Het pad naar de map waar de helpbestandprojecten zich bevinden</p><p>set project_path = e: \ werk \ projecten \ help-projecten</p><p>rem Roep de compiler op om een ​​specifiek project te verwerken,</p><p>rem wiens naam we doorgeven in de eerste parameter</p><p>% help_compiler%% project_path% \% 1.hpj</p><p>rem Dit is een label met de naam finish</p><p>Laten we eerlijk zijn, de voorgestelde methode voor het controleren van een parameter is niet de meest succesvolle.</p><p>Ten eerste, als de gebruiker per ongeluk de naam van een niet-bestaand bestand als parameter opgeeft, zal het batchbestand hiermee tevreden zijn en zal het proberen te compileren. Een meer correcte manier is om te controleren of zo'n bestand echt bestaat. Hiervoor is een speciaal woord voorzien in de MS-DOS-opdrachttaal <b>bestaan</b>... Daarom is het beter om te schrijven: <b>indien aanwezig% 1.hpj ga naar compileren</b>.</p><p>Ten tweede, het actieve gebruik van de opdracht <b>ga naar</b>(zogenaamde onvoorwaardelijke sprong) en labels verwarren de code enorm. Technisch gezien zijn ze helemaal niet slecht, maar het is nogal onhandig om een ​​batchbestand dat in deze stijl is geschreven, te debuggen en te onderhouden. Daarom hebben programmeurs lange tijd onvoorwaardelijke vertakking als ongewenst beschouwd. Hieronder is een meer correcte, vanuit het oogpunt van programmeerstijl, gestructureerde versie, die de constructie gebruikt: <b>als... anders</b>... Het werkt als volgt: als de voorwaarde waar is, worden de opdrachten tussen haakjes na <b>als</b>, en indien onwaar, dan tussen haakjes na <b>anders</b>.</p><p>rem Controleer of de parameter is ingesteld</p><p>indien niet aanwezig% 1.hpj (</p><p>rem Pad naar de compiler van helpbestanden</p><p>set help_compiler = "c: \ Program Files \ HTML Help Workshop \ hhc.exe"</p><p>rem Het pad naar de map waar de helpbestandprojecten zich bevinden</p><p>set project_path = e: \ werk \ projecten \ help-projecten</p><p>rem Roep de compiler op om een ​​specifiek project te verwerken,</p><p>% help_compiler%% project_path% \% 1.hpj</p><p>Hier is nog een voorbeeld van het werken met cheques. Het volgende batchbestand maakt een map met de naam <b>help-bestanden</b>(stel, om gecompileerde helpbestanden erin te laden). Bovendien, als er al een map met dezelfde naam bestaat (en deze bevat waarschijnlijk oude helpbestanden die u niet kwijt wilt raken: wat als de nieuwe slechter blijken te zijn?), wijst het batchbestand het de bak-extensie toe. Maar als de map <b>help-bestanden.bak</b> al bestond, verwijdert het batchbestand het (we gaan ervan uit dat één reservekopie voor ons voldoende is).</p><p>indien bestaan ​​help-files.bak rd help-files.bak</p><p>indien bestaan ​​help-bestanden ren help-bestanden help-bestanden.bak</p><p><b>Bulkverwerking van bestanden. voor commando:</b></p><p>Met de opdracht for kunt u de uitvoering van repetitieve acties van hetzelfde type organiseren. U kunt het gebruiken om getallen van één tot tien weer te geven, zoals weergegeven in de volgende lijst.</p><p>voor / l %% i in (1,1,10) doe echo %% i</p><p>Variabele <b>I</b> een lusteller genoemd. Vanwege de eigenaardigheid van de opdrachtsyntaxis <b>voor</b>, moet de naam van de lusteller één letter zijn. Bovendien, als we een commandobestand schrijven, dan moet er een dubbel procentteken voor de naam van de lusteller worden geplaatst, maar als we gewoon een commando typen op de commandoregel, dan een enkele.</p><p>De logica van dit team is als volgt. Na het woord <b>in</b> het wijzigingsbereik van de cyclusteller wordt aangegeven. In deze versie van het commando zijn dit drie getallen: de beginwaarde van de teller, de telstap, de grenswaarde van de teller. Bij het uitvoeren van een commando, zal de shell eerst de variabele toewijzen <b>I</b> betekenis <b>1 </b>, en dan bij elke stap van de cyclus zal het verhogen met <b>1 </b> totdat het overschrijdt <b>10 </b>... Uiteraard zullen er tien van dergelijke stappen zijn. Als we het nummer als de telstap hebben opgegeven <b>2 </b>, dan zou de lus vijf keer lopen. Bij elke stap van de lus wordt de body van de lus uitgevoerd, geschreven na het woord <b>doen</b>... In het getoonde voorbeeld is dit een echo-opdracht die de huidige waarde van de lusteller afdrukt.</p><p>Waarschijnlijk kun je een situatie bedenken waarin zoiets eigenlijk nodig is, maar meestal is het commando <b>voor</b> gebruikt om bestanden te herhalen en te verwerken. Ik moet zeggen dat in vrij eenvoudige gevallen de verwerking van bulkbestanden wordt uitgevoerd met jokertekens. Als we willen dat alle bestanden in de huidige map de extensie vervangen <b>.htm</b> op de <b>.html</b>, we voeren het commando in <b>ren * .htm * .html</b>... Maar als hetzelfde niet in één map moet worden gedaan, maar in een mappenboom, dan kun je niet zonder het for-commando. Het onderstaande batchbestand voert deze bewerking uit voor alle htm-bestanden in de website-submap van de huidige map. Om precies te zijn, in de hele directorystructuur die erin zit <b>website</b>.</p><p>voor / r website %% i in (* .htm) do ren %% i %% ~ ni.html</p><p>Sleutel <b>/ R</b> geeft een directory-traversal aan <b>website</b> en al zijn ingewanden. Als u het niet specificeert (maar dan mag u de directory niet specificeren), dan worden alleen bestanden in de huidige directory verwerkt. Het waardenbereik van de lusteller in deze versie van de opdracht is de verzameling van alle bestanden met de extensie <b>.htm</b> bevindt zich in een map (meer precies, een boom) <b>website</b>... Op het eerste gezicht is de invoer vreemd <b>~ nee</b> betekent dat uit de waarde van de variabele <b>I</b> alleen de bestandsnaam hoeft te worden gemarkeerd. De MS-DOS-opdrachttaal biedt verschillende van dergelijke modificaties, bijvoorbeeld de invoer <b>~ xi</b> staat voor de bestandsextensie. Alle modifiers worden beschreven in de opdrachtreferentie <b>voor</b>.</p><p>De hoofdtekst van de lus kan uit verschillende opdrachten bestaan, tussen haakjes geplaatst.</p><p>voor / r website %% i in (* .htm) do (</p><p>rem Geef de bestandsnaam weer</p><p>rem Hernoem het bestand</p><p>ren %% i %% ~ ni.html</p><p><b>Stuur de besturing over naar een ander batchbestand. Bel commando</b></p><p>Het is mogelijk om vanuit een batchbestand een ander commandobestand aan te roepen. Dit wordt gedaan door het commando <b>telefoongesprek</b>... Opmerkelijk is dat de variabelen die zijn ingesteld in het aanroepende opdrachtbestand "zichtbaar" zijn voor de aangeroepene. Omgekeerd, nadat het aangeroepen bestand klaar is met werken en de controle teruggeeft aan de beller, zal deze de variabelen "zien" die hem zijn achtergelaten door de aangeroepen "inherited". Hierdoor kan de ontwikkelaar van de batchbestanden bijvoorbeeld als volgt te werk gaan. Als meerdere batchbestanden dezelfde waarden moeten gebruiken, bijvoorbeeld paden naar sommige bestanden, kunnen ze worden verplaatst naar een apart batchbestand, dat als configuratiebestand zal fungeren. Elk werkend batchbestand begint met een aanroep naar de config. Het voordeel is dat wanneer u van pad verandert, u slechts wijzigingen hoeft aan te brengen in één configuratiebestand en niet in veel werkers.</p><p>"Config" batchbestand <b>config.bat</b>.</p><p>rem Pad naar de compiler van helpbestanden</p><p>set help_compiler = "c: \ Program Files \ HTML Help Workshop \ hhc.exe"</p><p>rem Het pad naar de map waar de helpbestandprojecten zich bevinden</p><p>set project_path = e: \ werk \ projecten \ help-projecten</p><p>"Werkend" batchbestand.</p><p>rem Variabelen instellen</p><p>rem Controleer of de parameter is ingesteld</p><p>indien niet aanwezig% 1.hpj (</p><p>rem Als de parameter leeg is, geef dan een foutmelding</p><p>echo Een dergelijk helpbestand bestaat niet.</p><p>rem Hieronder staan ​​de compilatiecommando's</p><p>rem Roep de compiler op om een ​​specifiek project te verwerken,</p><p>rem wiens naam we doorgeven in de eerste parameter</p><p>% help_compiler%% project_path% \% 1.hpj</p> <p>In dit artikel zullen we kijken naar zoiets nuttigs als " <b>lichaam shirt</b>". Laten we eerst definiëren wat een bat-bestand is. Batch- of batchbestanden zijn eenvoudige tekstbestanden die reeksen opdrachten bevatten ( <i>instructie</i>) interpreter en met de bat- of cmd-extensie ( <i>cmd werkt alleen op NT-besturingssystemen</i>). U kunt dergelijke bestanden maken en bewerken met een gewoon kladblok of een andere teksteditor.</p> <p>Nu vraag je je af, waarom moet je zulke baht-bestanden kunnen schrijven? En waarom zijn ze nodig? Ik zal proberen het uit te leggen.</p> <p>Ten eerste worden ze gebruikt om het werk gemakkelijker te maken, d.w.z. u moet bijvoorbeeld elke dag constant een bewerking uitvoeren ( <i>maak bijvoorbeeld een archief van bepaalde documenten</i>), kan dit met behulp van een batchbestand geautomatiseerd worden en doet u hier niet meer aan mee.</p> <p>Ten tweede zijn deze batchbestanden erg krachtig ( <i>tenzij je natuurlijk weet hoe je ze moet schrijven</i>), d.w.z. Je kunt zelfs een leuk programma schrijven ( <i>ik bedoel door functionaliteit</i>). Persoonlijk helpen ze me veel in mijn werk, en ik vergat gewoon wat dingen toen ik het handmatig deed.</p> <p>Laten we nu direct naar de basis van deze body-shirts gaan. Hoe ze zijn gemaakt, u hoeft alleen maar een eenvoudig tekstdocument te maken om het te openen en onmiddellijk op het tabblad " <i>Bestand-> opslaan als</i>", Schrijf in plaats van de extensie" <i>Tekst document.txt</i>", Bijvoorbeeld " <i>Tekstdocument .bat</i>"En opslaan, zodat we een batchbestand krijgen met de .bat-extensie, maar het doet nog niets.</p> <p>Om te beginnen zal ik een voorbeeld geven van een batchbestand dat ik op mijn werk gebruik om documenten te archiveren.</p><p>"C: \ Program Files \ WinRAR \ winrar.exe" a -r -dh -ed -agYYYY-mm-dd E: \ arhaccounts \ d: \ accounts \ *. Doc "C: \ Program Files \ WinRAR \ winrar. exe "a -r -dh -ed -agYYYY-mm-dd E: \ arhaccounts \ d: \ accounts \ *. xls" C: \ Program Files \ WinRAR \ winrar.exe "a -r -dh -ed -agYYYY -mm-dd E: \ arhaccounts \ d: \ accounts \ *.txt</p><p>Nu zal ik je een beetje vertellen wat dit batchbestand doet. WinRar start, daarna volgen de WinRar-commando's:</p> <ul><li>a - dit is om toe te voegen aan het archief;</li> <li>-r - submappen verwerken;</li> <li>-dh - gedeelde bestanden openen;</li> <li>-ed - voeg geen lege mappen toe;</li> <li>JJJJ-mm-dd - voeg de huidige datum toe aan de archiefnaam ( <i>datumnotatie</i>);</li> <li>E: \ arhaccounts \ - pad waar het uiteindelijke archief zich zal bevinden;</li> <li>d: \ accounts \ *.doc - pad en masker van te archiveren bestanden.</li> </ul><p>In dit geval archiveren we alle Word-, Excel- en tekstbestanden, de rest hoeven we niet te archiveren. Onze archivering gaat naar een andere schijf en we kopiëren het resulterende archief ook naar een andere computer, zodat de archieven in een ander kantoor worden opgeslagen. Het kopiëren wordt uitgevoerd via het netwerk, respectievelijk de computer waarnaar het archief wordt gekopieerd, moet zijn ingeschakeld. Om dit te doen, kunt u de volgende opdracht gebruiken:</p><p>Kopieer E: \ arhaccounts \ * Rar \\ namecomp \ arhiv \</p><h2>Voorbeelden van opdrachten voor bat-bestanden</h2> <p>Laten we nu eens kijken naar de basiscommando's die u kunt gebruiken.</p> <p>Als u een bestand moet verwijderen, schrijft u het volgende:</p><p>Del d: \ bestand \ test.doc</p><p><br>Om de hele map te verwijderen, schrijft u:</p><p>Rd d: \ bestand \</p><p>Plots moet je elke keer alles uit een map verwijderen, gebruik dan dit:</p><p>Echo Y | del d: \ bestand \</p><ul><li>del d: \ file \ - dit is precies het verwijderen van alle bestanden;</li> <li>echo Y | - de opdracht bevestigt de verwijdering omdat als u deze opdracht niet registreert, ziet u een bericht dat de verwijdering bevestigt - "Doorgaan", en u moet deze vraag elke keer beantwoorden.</li> </ul><p>Laten we nu eens kijken naar een ingewikkelder voorbeeld, waarin al aan de voorwaarde is voldaan:</p><p>@echo off "C: \ Program Files \ WinRAR \ winrar.exe" x -O + -IBCK d: \ test \ test.rar d: \ test IF not EXIST d: \ test \ 123.rar GOTO 1 IF EXIST d : \ test \ 123.rar GOTO 2: 2 "C: \ Program Files \ WinRAR \ winrar.exe" x -O + -IBCK d: \ test \ 123.rar c: \ del d: \ test \ 123.rar : 1 del d: \ test \ test.rar einde</p><p>Nu leg ik het uit, laten we zeggen dat je het test.rar-archief moet uitpakken, dat veel bestanden zal bevatten, maar als er een 123.rar-bestand is, moet je het uitpakken naar de root van de C-schijf, en de rest van de bestanden onaangeroerd in dezelfde map blijven.</p> <p>In volgorde is de opdracht @echo off nodig, zodat er niets op het scherm wordt weergegeven ( <i>in principe, als je niet nodig hebt, kun je deze regel niet schrijven</i>). Vervolgens voeren we Winrar uit en pakken het test.rar-archief uit in de testmap. Dan komt de voorwaarde als in de test ( <i>na het uitpakken test.rar</i>) we hebben het 123.rar-bestand niet, dan voeren we gewoon het batchbestand uit, gaat naar de regel: 1 en dan wordt het test.rar-bestand eenvoudigweg verwijderd om onnodige redenen. we hebben alles al uitgepakt wat we nodig hebben. Maar als het bestand 123.rar er is, dan gaat het batchbestand naar regel: 2, waarna het bestand 123.rar wordt uitgepakt naar de root van de C-schijf. Met andere woorden, we hebben de voorwaarde, als er een bestand, doe het dan, als er geen bestand is, doe dit dan. Als u bijvoorbeeld de voorwaarde in dit voorbeeld niet opgeeft, geeft ons batchbestand een foutmelding, en wanneer we het 123.rar-bestand niet in deze map hebben.</p> <p>Laten we nu zo'n voorbeeld bekijken, laten we zeggen dat je elke keer bestanden van de map op schijf D naar een USB-flashstation moet verplaatsen. Elke keer dat u schijf D van mijn computer moet invoeren, selecteert u de gewenste map, selecteert u alle bestanden eruit en knipt u, en gaat u vervolgens naar de USB-stick en plakt u deze. Met behulp van een batchbestand is dit in één klik gedaan ( <i>met één voorwaarde dat de flashdrive elke keer bijvoorbeeld G zal aansturen of wat je ook hebt</i>). Hier is een voorbeeld van zo'n batchbestand:</p><p>Verplaats "D: \ catalog \ *. Doc" G: \ catalognaflehe \</p><p>En alle bestanden met de extensie doc die zich in de directory D:\catalogus bevinden, worden naar de USB-stick verplaatst. Nu wil ik zeggen dat je in body-shirts scripts kunt gebruiken ( <i>scripts</i>) met behulp van de Windows Scripting Host en indien nodig om bijvoorbeeld een bericht weer te geven nadat de bestanden zijn gekopieerd ( <i>vorig voorbeeld</i>) plak dit:</p><p>Echo var WSHShell = WScript.CreateObject ("WScript.Shell"); >% temp% \ mes.js echo WSHShell.Popup ("Bestanden gekopieerd"); >>% temp% \ mes.js start% temp% \ mes.js deltree / y% temp% \ mes.js</p><p>In feite kun je veel praten over het schrijven van batch-bestanden en je kunt het natuurlijk niet in één artikel passen, hier heb ik alleen de principes getoond die worden gebruikt bij het schrijven van bat-bestanden, om zo te zeggen de basis. Als u meer opdrachten wilt weten voor het schrijven van batchbestanden, kunt u deze eenvoudig bekijken door in de opdrachtregel te typen ( <i>Start - Uitvoeren - cmd</i>) het help-commando, maar er zijn natuurlijk niet alle commando's die in body-shirts kunnen worden gebruikt. Veel succes met het schrijven van BAT-bestanden ( <i>batnikov</i>).</p> <p>Voortzetting van het onderwerp in het artikel -</p> <script type="text/javascript"> <!-- var _acic={dataProvider:10};(function(){var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://www.acint.net/aci.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})() //--> </script><br> <br> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy loading=lazy>");</script> </div> <div class="clear"></div> </div> </article> <div class='yarpp-related'> <section id="related_posts"> <div class="block-head"> <span>Meer informatie over het onderwerp</span> <div class="stripe-line"></div> </div> <div class="post-listing"> <div class="related-item"> <div class="post-thumbnail tie-appear replacemy" data="post_7839"> <img width="195" height="110" src="/uploads/886877fd2533cb85d5ebc322ed2a2b0b.jpg" class="attachment-tie-related size-tie-related wp-post-image" alt="Welke telefoons worden gebruikt door Poetin, Trump en andere presidenten 03" / loading=lazy loading=lazy></div> <a class="post_7839" href="https://qzoreteam.ru/nl/kakoi-telefon-u-prezidenta-kakimi-telefonami-polzuyutsya-putin-tramp-i-drugie/">Welke telefoons worden gebruikt door Poetin, Trump en andere presidenten 03</a></div> <div class="related-item"> <div class="post-thumbnail tie-appear replacemy" data="post_7839"> <img width="195" height="110" src="/uploads/6befca7d36ebdba1e1a04e0bdc7821e6.jpg" class="attachment-tie-related size-tie-related wp-post-image" alt="De juiste tijd en datum instellen op Android" / loading=lazy loading=lazy></div> <a class="post_7839" href="https://qzoreteam.ru/nl/ustanovit-tochnoe-vremya-na-kompyutere-avtomaticheski-nastroika/">De juiste tijd en datum instellen op Android</a></div> <div class="related-item"> <div class="post-thumbnail tie-appear replacemy" data="post_7839"> <img width="195" height="110" src="/uploads/6f4157d43c424177475206c0cbb7f190.jpg" class="attachment-tie-related size-tie-related wp-post-image" alt="Huawei GT3 review: een uitgebalanceerde smartphone voor mensen" / loading=lazy loading=lazy></div> <a class="post_7839" href="https://qzoreteam.ru/nl/haivei-gt3-obzor-huawei-gt3-sbalansirovannyi-smartfon-dlya-lyudei/">Huawei GT3 review: een uitgebalanceerde smartphone voor mensen</a></div> <div class="related-item"> <div class="post-thumbnail tie-appear replacemy" data="post_7839"> <img width="195" height="110" src="/uploads/dd55b7369a59a48061b96c411ef051b7.jpg" class="attachment-tie-related size-tie-related wp-post-image" alt="Smartphone Explay N1: beoordelingen en specificaties Besturingssysteem en programma's" / loading=lazy loading=lazy></div> <a class="post_7839" href="https://qzoreteam.ru/nl/planshet-explay-n1-polnyi-obzor-parametrov-i-vozmozhnostei-modeli-smartfon/">Smartphone Explay N1: beoordelingen en specificaties Besturingssysteem en programma's</a></div> <div class="related-item"> <div class="post-thumbnail tie-appear replacemy" data="post_7839"> <img width="195" height="110" src="/uploads/8cd618f2a07a1832b8b03b53f50f35fb.jpg" class="attachment-tie-related size-tie-related wp-post-image" alt="Netwerk verdwijnt op Nokia Lumia Microsoft-telefoons Lumia 535 Internet werkt niet goed" / loading=lazy loading=lazy></div> <a class="post_7839" href="https://qzoreteam.ru/nl/kak-nastroit-internet-na-telefone-lyumiya-propadaet-set-na/">Netwerk verdwijnt op Nokia Lumia Microsoft-telefoons Lumia 535 Internet werkt niet goed</a></div> <div class="related-item"> <div class="post-thumbnail tie-appear replacemy" data="post_7839"> <img width="195" height="110" src="/uploads/0949fbce71c471bfb64bbbe43e115fdb.jpg" class="attachment-tie-related size-tie-related wp-post-image" alt="Handige apps voor je Android Wear-smartwatch" / loading=lazy loading=lazy></div> <a class="post_7839" href="https://qzoreteam.ru/nl/skachat-programmu-dlya-detskih-umnyh-chasov-poleznye-prilozheniya-dlya/">Handige apps voor je Android Wear-smartwatch</a></div> </div> </section> </div> <div id="comments"> <ol class="commentlist"> <div class='rreekk' rel='15'> <div id="smartrotator_ad_4" onclick="yaCounter40492595.reachGoal ('tizercommentbefore1'); return true;"></div> </div> </ol> <div class="clear"></div> <div id="respond" class="comment-respond"> </div> </div> </div> <aside id="sidebar"> <div class="theiaStickySidebar"> <div class="execphpwidget"> <div id="text-4" class="widget widget_text"> <div class="widget-top"> <span>Bruikbaar</span> <div class="stripe-line"></div> </div> <div class="widget-container"> <div class="textwidget"> <style> .wpp-list li img { -webkit-border-radius: 65px; -moz-border-radius: 65px; border-radius: 65px; } .wpp-list li .post-views { display: block; margin-left: 70px; color: #828283; font-size: 12px; } .wpp-list li .post-views i { font-size: 13px; } .wpp-list li { line-height: 22px !important; } .replacemy { cursor: pointer; } } </style> <ul class="wpp-list"> <li> <div class="replacemy"><img src="/uploads/ce4759ced34948ad80e1d3d1fa6a4f1b.jpg" width="65" height="65" title="HTC One M7 - Specificaties" alt="HTC One M7 - Specificaties" class="wpp-thumbnail wpp_cached_thumb wpp_featured" / loading=lazy loading=lazy></div><a href="https://qzoreteam.ru/nl/mobilnyi-telefon-htc-one-32gb-htc-one-m7---tehnicheskie-harakteristiki-vremya/" class=""><br>HTC One M7 - Specificaties</a></li> <li> <div class="replacemy"><img src="/uploads/2a80e48ad99187dea03af03e945db5dc.jpg" width="65" height="65" title="telefoons"Моторола", старые модели: вспомним былое" alt="telefoons"Моторола", старые модели: вспомним былое" class="wpp-thumbnail wpp_cached_thumb wpp_featured" / loading=lazy loading=lazy></div><a href="https://qzoreteam.ru/nl/telefon-motorola-s-antennoi-telefony-motorola-starye-modeli-vspomnim/" class=""><br>Motorola-telefoons, oude modellen: onthoud het verleden</a></li> <li> <div class="replacemy"><img src="/uploads/3f41ac9413697958df31fad07fe0e977.jpg" width="65" height="65" title="Samsung S8000 Jet review - slimmer dan genie, sneller dan de wind Uiterlijk en ontwerpkenmerken" alt="Samsung S8000 Jet review - slimmer dan genie, sneller dan de wind Uiterlijk en ontwerpkenmerken" class="wpp-thumbnail wpp_cached_thumb wpp_featured" / loading=lazy loading=lazy></div><a href="https://qzoreteam.ru/nl/podrobnyi-obzor-mobilnogo-telefona-samsung-s8000-jet-obzor-samsung-s8000-jet-umnee/" class=""><br>Samsung S8000 Jet review - slimmer dan genie, sneller dan de wind Uiterlijk en ontwerpkenmerken</a></li> <li> <div class="replacemy"><img src="/uploads/89bb621aece6562827c19be02537c465.jpg" width="65" height="65" title="Smartphones met de beste camera Budget smartphones met OIS" alt="Smartphones met de beste camera Budget smartphones met OIS" class="wpp-thumbnail wpp_cached_thumb wpp_featured" / loading=lazy loading=lazy></div><a href="https://qzoreteam.ru/nl/kak-vybrat-smartfon-s-luchshei-kameroi-smartfony-s-luchshei-kameroi/" class=""><br>Smartphones met de beste camera Budget smartphones met OIS</a></li> <li> <div class="replacemy"><img src="/uploads/5a8cc29fe3a5f78ddb28c4971bcfe982.jpg" width="65" height="65" title="De lekkerste damptank" alt="De lekkerste damptank" class="wpp-thumbnail wpp_cached_thumb wpp_featured" / loading=lazy loading=lazy></div><a href="https://qzoreteam.ru/nl/samyi-vkusnyi-bak-dlya-pareniya-topovye-atomaizery-obzor-samyh/" class=""><br>De lekkerste damptank</a></li> </ul> </div> </div> </div> </div> </div> <div> </div> </aside> <div class="clear"></div> </div> <footer id="theme-footer"> <div id="footer-widget-area" class="wide-narrow-2c"><div id="footer-first" class="footer-widgets-box"><div id="text-2" class="footer-widget widget_text"><div class="footer-widget-top"></div><div class="footer-widget-container"><div class="textwidget"> <p>Alles over moderne technologie. Fouten. Spellen. Storingen. Techniek. internet <p></p> </div></div></div></div><div id="footer-second" class="footer-widgets-box"><div id="text-3" class="footer-widget widget_text"> <div class="footer-widget-top"></div> <div class="footer-widget-container"> <div class="textwidget"><a href="https://qzoreteam.ru/nl/sitemap.xml">site`s kaart</a></div> </div> </div><div id="text-7" class="footer-widget widget_text"><div class="footer-widget-top"></div><div class="footer-widget-container"><div class="textwidget"><br> <a href="">Feedback</a> </div></div></div></div></div><div class="clear"></div> </footer> <div class="clear"></div> <div class="footer-bottom"> <div class="container"> <div class="alignright"></div> <div class="alignleft">© Copyright 2017, https://qzoreteam.ru</div> <div class="clear"></div> </div> </div> </div> </div> </div> <div id="topcontrol" class="fa fa-angle-up" title="Ga naar de bovenkant van de pagina"></div> <div id="fb-root"></div> <script type="text/javascript"> jQuery(function($) { $(document).on("click", ".pseudo-link", function() { window.open($(this).data("uri")); }); }); </script> <script type='text/javascript'> /* */ var tocplus = { "smooth_scroll": "1", "visibility_show": "\u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c", "visibility_hide": "\u0441\u043a\u0440\u044b\u0442\u044c", "width": "310px" }; /* */ </script> <script type='text/javascript' src='https://qzoreteam.ru/wp-content/plugins/table-of-contents-plus/front.min.js'></script> <script type='text/javascript' src='https://qzoreteam.ru/wp-content/plugins/wp-polls/polls-js.js'></script> <script type='text/javascript' src='https://qzoreteam.ru/wp-content/plugins/wp-postratings/js/postratings-js.js'></script> <script type='text/javascript'> /* */ var tie = { "mobile_menu_active": "true", "mobile_menu_top": "", "lightbox_all": "", "lightbox_gallery": "", "woocommerce_lightbox": "", "lightbox_skin": "dark", "lightbox_thumb": "vertical", "lightbox_arrows": "true", "sticky_sidebar": "", "is_singular": "1", "SmothScroll": "true", "reading_indicator": "", "lang_no_results": "\u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043d\u0430\u0448\u043b\u043e\u0441\u044c", "lang_results_found": "\u041d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b" }; /* */ </script> <script type='text/javascript' src='https://qzoreteam.ru/wp-content/themes/pochk/js/tie-scripts.js'></script> <script type='text/javascript' src='https://qzoreteam.ru/wp-content/themes/pochk/js/ilightbox.packed.js'></script> <script type='text/javascript' src='/wp-includes/js/comment-reply.min.js'></script> <script type='text/javascript' src='/wp-includes/js/wp-embed.min.js'></script> <script type='text/javascript'> /* */ var gglcptch_pre = { "messages": { "in_progress": "\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0434\u043e\u0436\u0434\u0438\u0442\u0435\u0441\u044c \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 Google reCAPTCHA.", "timeout": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c Google reCAPTCHA. \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0412\u0430\u0448\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0441\u0435\u0442\u0438 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u044d\u0442\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443." } }; /* */ </script> <script type='text/javascript' src='https://qzoreteam.ru/wp-content/plugins/google-captcha/js/pre-api-script.js'></script> <script type='text/javascript' data-cfasync="false" async="async" defer="defer" src='https://www.google.com/recaptcha/api.js?onload=gglcptch_onload_callback&render=explicit'></script> <script type='text/javascript' src='https://qzoreteam.ru/wp-content/plugins/google-captcha/js/script.js'></script> <script type="text/javascript" src="https://qzoreteam.ru/wp-content/themes/pochk/my/my.js"></script> <script type="text/javascript" src="https://qzoreteam.ru/wp-content/themes/pochk/my/etimer.js"></script> <script type="text/javascript"> <!-- var _acic={dataProvider:10};(function(){var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://www.acint.net/aci.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})() //--> </script><br> <br> </body> </html>