ΠΊΠ°ΠΊΠΎΠΉ язык ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС windows

Π’Ρ‹Π²ΠΎΠ΄ сообщСний ΠΈ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΏΠ΅Ρ€Π΅Π΄ исполнСниСм выводятся Π½Π° экран, Ρ‡Ρ‚ΠΎ выглядит Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ эстСтично. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ECHO OFF ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΈΠ΄ΡƒΡ‰ΠΈΡ… послС Π½Π΅Π΅ (сама ΠΊΠΎΠΌΠ°Π½Π΄Π° ECHO OFF ΠΏΡ€ΠΈ этом всС ΠΆΠ΅ дублируСтся). НапримСр,

Для восстановлСния Ρ€Π΅ΠΆΠΈΠΌΠ° дублирования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° ECHO ON. ΠšΡ€ΠΎΠΌΠ΅ этого, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ любой ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ строки Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, написав Π² Π½Π°Ρ‡Π°Π»Π΅ этой строки символ @, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² самоС Π½Π°Ρ‡Π°Π»ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

Ρ‚ΠΎ это Ρ€Π΅ΡˆΠΈΡ‚ всС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄.

Π’ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° экран строки с сообщСниями. ДСлаСтся это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

Команда ECHO. (Ρ‚ΠΎΡ‡ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ нСпосрСдствСнно Π·Π° словом «ECHO») Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° экран ΠΏΡƒΡΡ‚ΡƒΡŽ строку.

Часто Π±Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠ΄ΠΎΠ±Π½ΠΎ для просмотра сообщСний, Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ экран ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ CLS.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ пСрСнаправлСния Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° (символы > ΠΈ >>), ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ сообщСния, Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ECHO, Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ тСкстовый Ρ„Π°ΠΉΠ». НапримСр:

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ, скаТСм, Π·Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹-ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ с ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠΌ ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… дСйствиях. НапримСр:

ИспользованиС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки

ΠŸΡ€ΠΈ запускС ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ число ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², значСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π°. Π­Ρ‚ΠΎ позволяСт, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» для выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.

Для доступа ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ символы %0, %1, …, %9 ΠΈΠ»ΠΈ %*. ΠŸΡ€ΠΈ этом вмСсто %0 подставляСтся имя выполняСмого ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, вмСсто %1, %2, …, %9 β€” значСния ΠΏΠ΅Ρ€Π²Ρ‹Ρ… дСвяти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки соотвСтствСнно, Π° вмСсто %* β€” всС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹. Если Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π·Π°Π΄Π°Π½ΠΎ мСньшС дСвяти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ‚ΠΎ «Π»ΠΈΡˆΠ½ΠΈΠ΅» ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ· %1 – %9 Π·Π°ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ пустыми строками. Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ΠŸΡƒΡΡ‚ΡŒ имССтся ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» copier.bat ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ содСрТания:

Если Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки с двумя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€

Ρ‚ΠΎ Π½Π° экран вывСдСтся сообщСниС

ΠΈ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° C:\Programs со всСми Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ Π² D:\Backup.

ΠŸΡ€ΠΈ нСобходимости ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ дСвяти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Π­Ρ‚ΠΎ достигаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ SHIFT, которая измСняСт значСния Π·Π°ΠΌΠ΅Ρ‰Π°Π΅ΠΌΡ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² с %0 ΠΏΠΎ %9, копируя ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ %1 копируСтся Π² %0, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ %2 – Π² %1 ΠΈ Ρ‚.Π΄. Π—Π°ΠΌΠ΅Ρ‰Π°Π΅ΠΌΠΎΠΌΡƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ %9 присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Π·Π° старым Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ %9. Если ΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π½Π΅ Π·Π°Π΄Π°Π½, Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ %9 β€” пустая строка.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ΠŸΡƒΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» my.bat Π²Ρ‹Π·Π²Π°Π½ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π’ΠΎΠ³Π΄Π° %0=my.bat, %1=p1, %2=p2, %3=p3, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ %4 – %9 ΡΠ²Π»ΡΡŽΡ‚ΡΡ пустыми строками. ПослС выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ SHIFT значСния Π·Π°ΠΌΠ΅Ρ‰Π°Π΅ΠΌΡ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² измСнятся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: %0=p1, %1=p2, %2=p3, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ %3 – %9 – пустыС строки.

ΠŸΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ SHIFT ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ»ΡŽΡ‡ /n, Π·Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ Π½Π°Ρ‡Π°Π»ΠΎ сдвига ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² с Π½ΠΎΠΌΠ΅Ρ€Π° n, Π³Π΄Π΅ n ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ числом ΠΎΡ‚ 0 Π΄ΠΎ 9.
НапримСр, Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅:

ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ %2 замСняСтся Π½Π° %3, %3 Π½Π° %4 ΠΈ Ρ‚.Π΄., Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ %0 ΠΈ %1 ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

Команда, обратная SHIFT (ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ сдвиг), отсутствуСт. ПослС выполнСния SHIFT ΡƒΠΆΠ΅ нСльзя Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ (%0), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅Π΄ сдвигом. Если Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Π·Π°Π΄Π°Π½ΠΎ большС дСсяти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ SHIFT ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Ρ€Π°Π·.
Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ возмоТности синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° замСняСмых ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ n (%n) допустимы синтаксичСскиС конструкции (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹), прСдставлСнныС Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅:

Π’Π°Π±Π»ΠΈΡ†Π° 2.1. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ для замСняСмых ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

ОписаниС

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ %n Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ Π΄ΠΎ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

На ΠΊΠ°ΠΊΠΎΠΌ языкС написан cmd.exe?

Командная строка, Ρ‚Π°ΠΊΠΆΠ΅ извСстная ΠΊΠ°ΠΊ cmd.exe ΠΈΠ»ΠΈ cmd (ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ исполняСмого Ρ„Π°ΠΉΠ»Π°), являСтся ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах Windows NT, Windows CE, OS / 2 ΠΈ eComStation. Π­Ρ‚ΠΎ Π°Π½Π°Π»ΠΎΠ³ COMMAND.COM Π² систСмах DOS ΠΈ Windows 9x (Π³Π΄Π΅ ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ называСтся Β«MS-DOS PromptΒ») ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°ΠΌ Unix, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ Π² Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… систСмах.

Π― искал Π²Π΅Π·Π΄Π΅, Π½ΠΎ Π½Π΅ нашСл ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° этот вопрос.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Π΅Π±-сайт ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ язык ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² cmd.exe, Π½ΠΎ ΠΌΠ½Π΅ Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π½Π°ΠΉΡ‚ΠΈ язык, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ написан.

Какой язык использовался для написания ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΈΠ»ΠΈ cmd.exe Π² Windows?

2 ΠΎΡ‚Π²Π΅Ρ‚Π°

ΠΏΠΎΠ΄ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠΌ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ послСдниС дополнСния ΠΊ CMD Π±Ρ‹Π»ΠΈ написаны Π½Π° C ++. x cmd!*::* ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ использованиС пространства ΠΈΠΌΠ΅Π½ C ++ std

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ я Π±Ρ‹ Π²Ρ‹Π±Ρ€Π°Π» сочСтаниС C ΠΈ C ++.

Как ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΎ Π ΠΈΡ‡Π°Ρ€Π΄ΠΎΠΌ Π’Π΅Ρ€Π½Π΅Ρ€ΠΎΠΌ М.Π‘., ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ написано Π½Π° C

Но Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Π³ΠΎ части Π±Ρ‹Π»ΠΈ пСрСнСсСны Π½Π° C ++ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚

Π’Π½ΡƒΡ‚Ρ€ΠΈ консоли Windows

Для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ заботится ΠΎ Ρ‚Π°ΠΊΠΈΡ… Π²Π΅Ρ‰Π°Ρ…: ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‚, написана Π»ΠΈ Windows Π½Π° C ΠΈΠ»ΠΈ C ++. ΠžΡ‚Π²Π΅Ρ‚ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ, нСсмотря Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ NT, ΠΊΠ°ΠΊ ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, Windows ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ написана Π½Π° языкС C. ΠŸΠΎΡ‡Π΅ΠΌΡƒ? C ++ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π·Π°Ρ‚Ρ€Π°Ρ‚ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ памяти ΠΈ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°. Π”Π°ΠΆΠ΅ сСгодня скрытыС Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° ΠΊΠΎΠ΄, написанный Π½Π° C ++, ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΡƒΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΠ΅, Π½ΠΎ Π² ΠΊΠΎΠ½Ρ†Π΅ 1990-Ρ… Π³ΠΎΠ΄ΠΎΠ², ΠΊΠΎΠ³Π΄Π° ΠΏΠ°ΠΌΡΡ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ

ΠΊΠ°ΠΊΠΎΠΉ язык ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС windows. 1269M. ΠΊΠ°ΠΊΠΎΠΉ язык ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС windows Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊΠΎΠΉ язык ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС windows-1269M. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊΠΎΠΉ язык ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС windows. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 1269M. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΏΠ΅Ρ€Π΅Π΄ исполнСниСм выводятся Π½Π° экран, Ρ‡Ρ‚ΠΎ выглядит Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ эстСтично. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ECHO OFF ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΈΠ΄ΡƒΡ‰ΠΈΡ… послС Π½Π΅Π΅ (сама ΠΊΠΎΠΌΠ°Π½Π΄Π° ECHO OFF ΠΏΡ€ΠΈ этом всС ΠΆΠ΅ дублируСтся). НапримСр,

Π‘Π²Π΅Ρ€Ρ…Ρƒ (синиС ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ исходного Π±ΡƒΡ„Π΅Ρ€Π°):

Если вас это интСрСсуСт, Ρ‚ΠΎ conhost.exe Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Π» ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ Π² Π²ΠΈΠ΄Π΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Windows.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ большС Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… статСй с ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ Π² Π±Π»ΠΎΠ³Π΅ ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Windows

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Какой язык ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС windows

Π―Π·Ρ‹ΠΊ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки (shell language) Π² Windows Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… (ΠΈΠ»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ…) Ρ„Π°ΠΉΠ»ΠΎΠ². ΠšΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π² Windows β€” это ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ тСкстовый Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ bat ΠΈΠ»ΠΈ cmd, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ записаны допустимыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы (ΠΊΠ°ΠΊ внСшниС, Ρ‚Π°ΠΊ ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅), Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ инструкции ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова, ΠΏΡ€ΠΈΠ΄Π°ΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»Π°ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ сходство с алгоритмичСскими языками программирования. НапримСр, Ссли Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Ρ„Π°ΠΉΠ» deltmp.bat ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ (Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ исполняСмым Ρ„Π°ΠΉΠ»Π°ΠΌ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ com ΠΈΠ»ΠΈ exe), Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠ΄Π°Π»ΠΈΠΌ всС Ρ„Π°ΠΉΠ»Ρ‹ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Windows. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, исполнСниС ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Π²ΠΎΠ΄ записанных Π² Π½Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄. ΠŸΡ€ΠΈ этом Π½Π΅ проводится Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ компиляции ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ синтаксиса ΠΊΠΎΠ΄Π°; Ссли встрСчаСтся строка с ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, Ρ‚ΠΎ ΠΎΠ½Π° игнорируСтся. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ссли Π²Π°ΠΌ приходится часто Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ дСйствия, Ρ‚ΠΎ использованиС ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π’Ρ‹Π²ΠΎΠ΄ сообщСний ΠΈ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΏΠ΅Ρ€Π΅Π΄ исполнСниСм выводятся Π½Π° экран, Ρ‡Ρ‚ΠΎ выглядит Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ эстСтично. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ECHO OFF ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΈΠ΄ΡƒΡ‰ΠΈΡ… послС Π½Π΅Π΅ (сама ΠΊΠΎΠΌΠ°Π½Π΄Π° ECHO OFF ΠΏΡ€ΠΈ этом всС ΠΆΠ΅ дублируСтся). НапримСр,

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² самоС Π½Π°Ρ‡Π°Π»ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

Ρ‚ΠΎ это Ρ€Π΅ΡˆΠΈΡ‚ всС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄.

Π’ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° экран строки с сообщСниями. ДСлаСтся это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

ИспользованиС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки

ΠŸΡ€ΠΈ запускС ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ число ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², значСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π°. Π­Ρ‚ΠΎ позволяСт, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» для выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.

Если Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки с двумя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€

Ρ‚ΠΎ Π½Π° экран вывСдСтся сообщСниС

ΠΈ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° C:\Programs со всСми Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ Π² D:\Backup.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ΠŸΡƒΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» my.bat Π²Ρ‹Π·Π²Π°Π½ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

НапримСр, Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅:

Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ возмоТности синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° замСняСмых ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ n (%n) допустимы синтаксичСскиС конструкции (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹), прСдставлСнныС Π² Ρ‚Π°Π±Π». 3.1.

Fn

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ %n Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ Π΄ΠΎ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°
%

Dn

Из ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ %n выдСляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ имя диска
%

Pn

Из ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ %n выдСляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ
%

Nn

Из ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ %n выдСляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ имя Ρ„Π°ΠΉΠ»Π°
%

Xn

Из ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ %n выдСляСтся Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°
%

Sn

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² N ΠΈ X для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ %n измСняСтся Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„Π°ΠΉΠ»Π°
%

Π”Π°Π½Π½Ρ‹Π΅ синтаксичСскиС конструкции ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

DPn β€” ΠΈΠ· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ %n выдСляСтся имя диска ΠΈ ΠΏΡƒΡ‚ΡŒ,

NXn β€” ΠΈΠ· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ %n выдСляСтся имя Ρ„Π°ΠΉΠ»Π° ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅.

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ΠŸΡƒΡΡ‚ΡŒ ΠΌΡ‹ находимся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ C:\TEXT ΠΈ запускаСм ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Рассказ.doc ( %1=Рассказ.doc ). Π’ΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², описанных Π² Ρ‚Π°Π±Π». 3.1, ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ %1 даст ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹:

Π Π°Π±ΠΎΡ‚Π° с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ срСды

Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ срСды (ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ окруТСния), каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… хранится Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, ΠΈΠΌΠ΅Π΅Ρ‚ своС ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ имя, Π° Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ являСтся строка. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды автоматичСски ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² процСссС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. Π’Π°ΠΊΠΈΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, WINDIR, которая опрСдСляСт располоТСниС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Windows, TEMP, которая опрСдСляСт ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ для хранСния Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Windows ΠΈΠ»ΠΈ PATH, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ хранится систСмный ΠΏΡƒΡ‚ΡŒ (ΠΏΡƒΡ‚ΡŒ поиска), Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ список ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… систСма Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΊΠ°Ρ‚ΡŒ выполняСмыС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ совмСстного доступа (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, динамичСскиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ SET ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ собствСнныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды.

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

ΠŸΡ€ΠΈ запускС Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π½Π° экран вывСдСтся строка

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΊΠ°ΠΊ строк

Π‘ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ срСды Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ манипуляции. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π½Π°Π΄ Π½ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ (склСивания). Для этого Π½ΡƒΠΆΠ½ΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ SET просто Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ рядом значСния соСдиняСмых ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. НапримСр,

Π½Π° экран вывСдутся Π΄Π²Π΅ строки:

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΈΠ· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ срСды ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ подстроки с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ конструкции %имя_ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ:

Π½ΠΎΠ²Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ значСния: %dd1%=21, %dd2%=21, %mm%=09, %yyyy%=2007.

Π’-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Π·Π°ΠΌΠ΅Π½Ρ‹ подстрок с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ конструкции %имя_ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ:s1=s2% (Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π° строка, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ подстроки s1 Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ срСды Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π° s2 ). НапримСр, послС выполнСния ΠΊΠΎΠΌΠ°Π½Π΄

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΊΠ°ΠΊ с числами
Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…
БвязываниС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с составными выраТСниями (Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠΌΠ°Π½Π΄, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки) Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π°Π½Π½Π΅Π³ΠΎ связывания. Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π»ΠΎΠ³ΠΈΠΊΠΈ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ошибкам. НапримСр, рассмотрим ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» 1.bat со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ содСрТимым:

ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» 2.bat:

ΠŸΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ bat-Ρ„Π°ΠΉΠ»Π°, Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ клавиши + ΠΈΠ»ΠΈ +
. Однако часто Π±Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ строкС с Π²Ρ‹Π΄Π°Ρ‡Π΅ΠΉ запроса Π½Π° Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ любой клавиши. Π­Ρ‚ΠΎ дСлаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ PAUSE. ΠŸΠ΅Ρ€Π΅Π΄ запуском этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ECHO ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΎ дСйствиях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ произвСсти. НапримСр:

ΠšΠΎΠΌΠ°Π½Π΄Ρƒ PAUSE ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ опасных дСйствий (ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ дисков ΠΈ Ρ‚.ΠΏ.). НапримСр,

Π’Ρ‹Π·ΠΎΠ² Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²

Из ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ, просто ΡƒΠΊΠ°Π·Π°Π² Π΅Π³ΠΎ имя. НапримСр:

Однако Π² этом случаС послС выполнСния Π²Ρ‹Π·Π²Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» Π½Π΅ пСрСдаСтся, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°

(ΠΈ всС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π° Π½Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹) Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π°.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ внСшний ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠΌ Π² ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

Π’ этом случаС послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„Π°ΠΉΠ»Π° f.bat ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ вСрнСтся Π² ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π½Π° строку, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ CALL (Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ это ΠΊΠΎΠΌΠ°Π½Π΄Π° COPY A:\*.* C:\ ).

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°

ΠšΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ GOTO ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ этим ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌ. Π›ΡŽΠ±Π°Ρ строка, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π°ΡΡΡ с двоСточия :, воспринимаСтся ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΊΠ°. Имя ΠΌΠ΅Ρ‚ΠΊΠΈ задаСтся Π½Π°Π±ΠΎΡ€ΠΎΠΌ символов, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π·Π° Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ΠΌ Π΄ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Π° ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ†Π° строки. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

ΠŸΡƒΡΡ‚ΡŒ имССтся ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ содСрТания:

Π’Π°ΠΊΠΆΠ΅ для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ ΠΌΠ΅Ρ‚ΠΊΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΊΡ€ΠΎΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ GOTO ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½Π½ΡƒΡŽ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ CALL :

Ρ‚ΠΎ Π½Π° экран вывСдутся Ρ‚Ρ€ΠΈ строки:

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ использованиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ CALL ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€) Π² алгоритмичСских языках программирования.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ условия

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Ρ‚ΠΈΠΏ условия ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Для этого ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° синтаксиса ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ IF :

(ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π² Π½ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²) ΠΈΠ»ΠΈ

Рассмотрим сначала ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. УсловиС строка1==строка2 (здСсь Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π²Π° Π·Π½Π°ΠΊΠ° равСнства) считаСтся истинным ΠΏΡ€ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎΠΌ совпадСнии ΠΎΠ±Π΅ΠΈΡ… строк. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ NOT ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ заданная ΠΊΠΎΠΌΠ°Π½Π΄Π° выполняСтся лишь Π² Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° сравниваСмыС строки Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚.

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, %1 ΠΈΠ»ΠΈ %TEMP% ). ΠšΠ°Π²Ρ‹Ρ‡ΠΊΠΈ для Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹Ρ… строк Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ. НапримСр,

Ρ‚ΠΎ Π² процСссС выполнСния вмСсто %MyVar% подставится пустая строка ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ синтаксичСская ошибка. Вакая ΠΆΠ΅ ситуация ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ, Ссли ΠΎΠ΄Π½Π° ΠΈΠ· сравниваСмых строк являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ ΠΏΡ€ΠΈ запускС ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈ сравнСнии строк Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΊ Π½ΠΈΠΌ Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ символ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ IF ΠΈ SHIFT ΠΌΠΎΠΆΠ½ΠΎ Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ всС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Ρ„Π°ΠΉΠ»Π°, Π΄Π°ΠΆΠ΅ Π½Π΅ зная Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΈΡ… количСства. НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» (Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Π³ΠΎ primer.bat) Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° экран имя запускаСмого Ρ„Π°ΠΉΠ»Π° ΠΈ всС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки:

Если Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ primer.bat с Ρ‡Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ:

Ρ‚ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния Π½Π° экран вывСдСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ информация:

Рассмотрим Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ IF Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅:

Бинтаксис ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² сравнСния прСдставлСны Π² Ρ‚Π°Π±Π». 3.2.

Π’Π°Π±Π»ΠΈΡ†Π° 3.2. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния Π² IF

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
EQLΠ Π°Π²Π½ΠΎ
NEQНС Ρ€Π°Π²Π½ΠΎ
LSSМСньшС
LEQМСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ
GTRΠ‘ΠΎΠ»ΡŒΡˆΠ΅
GEQΠ‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² сравнСния:

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° сущСствования Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°

Π’Ρ‚ΠΎΡ€ΠΎΠΉ способ использования ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ IF β€” это ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° сущСствования Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. Бинтаксис для этого случая ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄:

УсловиС считаСтся истинным, Ссли ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» сущСствуСт. ΠšΠ°Π²Ρ‹Ρ‡ΠΊΠΈ для ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ IF провСряСтся Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ срСды

Аналогично Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π° IF позволяСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π² систСмС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ срСды:

Π—Π΄Π΅ΡΡŒ условиС DEFINED примСняСтся ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ EXISTS наличия Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, Π½ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ срСды ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ истинноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ссли эта пСрСмСнная ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°. НапримСр:

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ΄Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ способ использования ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ IF β€” это ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ΄Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ (ΠΊΠΎΠ΄Π° Π²Ρ‹Ρ…ΠΎΠ΄Π°) ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Бинтаксис для IF Π² этом случаС ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

Π—Π΄Π΅ΡΡŒ условиС считаСтся истинным, Ссли послСдняя запущСнная ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»Π°ΡΡŒ с ΠΊΠΎΠ΄ΠΎΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°, Ρ€Π°Π²Π½Ρ‹ΠΌ Π»ΠΈΠ±ΠΎ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰ΠΈΠΌ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ число.

Боставим, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π» Ρ„Π°ΠΉΠ» my.txt Π½Π° диск C: Π±Π΅Π· Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° экран сообщСний ΠΎ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, Π° Π² случаС возникновСния ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ошибки Π²Ρ‹Π΄Π°Π²Π°Π» ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅:

Π’ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ IF ERRORLEVEL … ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния чисСл, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π² Ρ‚Π°Π±Π». 3.2. НапримСр:

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° вСрсии Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄

НаконСц, для опрСдСлСния Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ Π½ΠΎΠΌΠ΅Ρ€Π° вСрсии Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ примСняСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ IF Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅:

ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ Ρ†ΠΈΠΊΠ»ΠΎΠ²

Π¦ΠΈΠΊΠ» FOR … IN … DO …

Π‘Π°ΠΌΡ‹ΠΉ простой Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ синтаксиса ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ FOR для ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

Π‘Ρ€Π°Π·Ρƒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Если Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ Π·Π°Π΄Π°Π½Ρ‹ строки

Ρ‚ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π΅Π³ΠΎ выполнСния Π½Π° экранС Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ мноТСство Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ FOR Π·Π°Π΄Π°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ тСкстовых строк, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятыми, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π‘ΠΊΠΎΠ±ΠΊΠΈ здСсь ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Π° [ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹] Π·Π°Π΄Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡƒΡŽ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта мноТСства, ΠΏΡ€ΠΈ этом Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ FOR Π½Π° ΠΎΠ΄Π½ΠΎΠΉ строкС Π½Π΅ допускаСтся. Если Π² строкС, входящСй Π²ΠΎ мноТСство, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ запятая, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этой строки Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. НапримСр, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния Ρ„Π°ΠΉΠ»Π° с ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ

Π½Π° экран Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ

ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ использовании ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ FOR процСсс ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ продолТаСтся, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ΡΡ всС Ρ„Π°ΠΉΠ»Ρ‹ (ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ Ρ„Π°ΠΉΠ»ΠΎΠ²), ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π²ΠΎ мноТСствС.

Π¦ΠΈΠΊΠ» FOR /D … IN … DO …

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ FOR рСализуСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π° /D:

Π’ случаС, Ссли Π½Π°Π±ΠΎΡ€ содСрТит подстановочныС Π·Π½Π°ΠΊΠΈ, Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° выполняСтся для всСх подходящих ΠΈΠΌΠ΅Π½ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Π° Π½Π΅ ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ². Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»:

ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ список всСх ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π½Π° дискС C:, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π¦ΠΈΠΊΠ» FOR /R … IN … DO …

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π° /R ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΡŽ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅: FOR :

Π¦ΠΈΠΊΠ» FOR /L … IN … DO …

ΠšΠ»ΡŽΡ‡ /L позволяСт Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ FOR арифмСтичСский Ρ†ΠΈΠΊΠ», Π² этом случаС синтаксис ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ: Π²ΠΈΠ΄:

Π—Π΄Π΅ΡΡŒ заданная послС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова IN Ρ‚Ρ€ΠΎΠΉΠΊΠ° (Π½Π°Ρ‡Π°Π»ΠΎ,шаг,ΠΊΠΎΠ½Π΅Ρ†) раскрываСтся Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ чисСл с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π½Π°Ρ‡Π°Π»ΠΎΠΌ, ΠΊΠΎΠ½Ρ†ΠΎΠΌ ΠΈ шагом приращСния. Π’Π°ΠΊ, Π½Π°Π±ΠΎΡ€ (1,1,5) раскрываСтся Π² (1 2 3 4 5), Π° Π½Π°Π±ΠΎΡ€ (5,-1,1) замСняСтся Π½Π° (5 4 3 2 1). НапримСр, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°:

пСрСмСнная Ρ†ΠΈΠΊΠ»Π° %%f ΠΏΡ€ΠΎΠ±Π΅ΠΆΠΈΡ‚ значСния ΠΎΡ‚ 1 Π΄ΠΎ 5, ΠΈ Π½Π° экранС Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΡŽΡ‚ΡΡ ΠΏΡΡ‚ΡŒ чисСл:

Π¦ΠΈΠΊΠ» FOR /F … IN … DO …

Π‘Π°ΠΌΡ‹Π΅ ΠΌΠΎΡ‰Π½Ρ‹Π΅ возмоТности (ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ самый Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹ΠΉ синтаксис) ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π°: FOR с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ /F :

Π—Π΄Π΅ΡΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π½Π°Π±ΠΎΡ€ содСрТит ΠΈΠΌΠ΅Π½Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ, Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° состоит Π² Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»Π°, Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠΈ Π΅Π³ΠΎ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ строки тСкста ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ числа подстрок. Π—Π°Ρ‚Π΅ΠΌ найдСнная подстрока ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ основного Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π° (Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹).

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽΠΊΠ»ΡŽΡ‡ /F выдСляСт ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки Ρ„Π°ΠΉΠ»Π° ΠΏΠ΅Ρ€Π²ΠΎΠ΅ слово, ΠΎΡ‡ΠΈΡ‰Π΅Π½Π½ΠΎΠ΅ ΠΎΡ‚ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰ΠΈΡ… Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ². ΠŸΡƒΡΡ‚Ρ‹Π΅ строки Π² Ρ„Π°ΠΉΠ»Π΅ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ. ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ «ΠΊΠ»ΡŽΡ‡ΠΈ» слуТит для пСрСопрСдСлСния Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€Π°Π²ΠΈΠ» ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ строк. ΠšΠ»ΡŽΡ‡ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΡƒΡŽ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ строку, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π² Ρ‚Π°Π±Π». 3.3 ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова:

Π’Π°Π±Π»ΠΈΡ†Π° 3.3. ΠšΠ»ΡŽΡ‡ΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ FOR /F

ΠšΠ»ΡŽΡ‡ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
EOL=CΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ символа ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π² Π½Π°Ρ‡Π°Π»Π΅ строки (допускаСтся Π·Π°Π΄Π°Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа)
SKIP=NЧисло пропускаСмых ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ строк Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ„Π°ΠΉΠ»Π°
DELIMS=XXXΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π°Π±ΠΎΡ€Π° Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ для Π·Π°ΠΌΠ΅Π½Ρ‹ Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ±Π΅Π»Π° ΠΈ Π·Π½Π°ΠΊΠ° табуляции
TOKENS=X,Y,M-NΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² подстрок, выдСляСмых ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… для выполнСния Π² Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°

Π Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° parser.bat, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ Ρ€Π°Π·Π±ΠΎΡ€ Ρ„Π°ΠΉΠ»Π° myfile.txt:

Π—Π΄Π΅ΡΡŒ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ строкС производится ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия Ρ„Π°ΠΉΠ»Π° myfile.txt; Π² случаС отсутствия этого Ρ„Π°ΠΉΠ»Π° выводится ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰Π΅Π΅ сообщСниС. Команда FOR Π² Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ строкС ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» myfile.txt ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠŸΡ€ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ всС строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с символа Ρ‚ΠΎΡ‡ΠΊΠΈ с запятой ( EOL=; ).

Вторая ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΡ подстроки ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ подстроки Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ) ΠΈ/ΠΈΠ»ΠΈ запятыми ( DELIMS=, ).

Π’ Ρ‚Π΅Π»Π΅ Ρ†ΠΈΠΊΠ»Π° пСрСмСнная %%i ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²Ρ‚ΠΎΡ€ΠΎΠΉ подстроки, %%j β€” для Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ, Π° %%k ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ всС ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ подстроки послС Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ.

Ρ‚ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° parser.bat Π½Π° экран вывСдСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

ΠšΠ»ΡŽΡ‡ TOKENS= позволяСт ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ строки Ρ„Π°ΠΉΠ»Π° Π΄ΠΎ 26 подстрок, поэтому Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π΅ с Π±ΡƒΠΊΠ² английского Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° (a–z). Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… FOR ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, поэтому ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ 26 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

Команда FOR /F Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ строку. Для этого слСдуСт ввСсти Π½ΡƒΠΆΠ½ΡƒΡŽ строку Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ… вмСсто Π½Π°Π±ΠΎΡ€Π° ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² скобках. Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ ΠΎΠ½Π° взята ΠΈΠ· Ρ„Π°ΠΉΠ»Π°. НапримСр, Ρ„Π°ΠΉΠ» ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ содСрТания:

ΠΏΡ€ΠΈ своСм Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚

ВмСсто явного задания строки для Ρ€Π°Π·Π±ΠΎΡ€Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ срСды, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

НаконСц, ΠΊΠΎΠΌΠ°Π½Π΄Π° FOR /F позволяСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ строку Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Для этого слСдуСт вмСсто Π½Π°Π±ΠΎΡ€Π° ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² скобках ввСсти строку Π²Ρ‹Π·ΠΎΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² апострофах (Π½Π΅ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ…!). Π‘Ρ‚Ρ€ΠΎΠΊΠ° пСрСдаСтся для выполнСния ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄ cmd.exe, Π° Π²Ρ‹Π²ΠΎΠ΄ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ записываСтся Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ обрабатываСтся Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ строка Π²Ρ‹Π²ΠΎΠ΄Π° взята ΠΈΠ· Ρ„Π°ΠΉΠ»Π°. НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»:

Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ ΠΈΠΌΠ΅Π½ всСх ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… срСды, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π² настоящСС врСмя Π² систСмС.

Π’ Ρ†ΠΈΠΊΠ»Π΅ FOR допускаСтся ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ‚Π΅Ρ… ΠΆΠ΅ синтаксичСских конструкций (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²), Ρ‡Ρ‚ΠΎ ΠΈ для замСняСмых ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² (Ρ‚Π°Π±Π». 3.4).

Fi

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ %i Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ Π΄ΠΎ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°
%

Di

Из ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ %i выдСляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ имя диска
%

Pi

Из ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ %i выдСляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ
%

Ni

Из ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ %i выдСляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ имя Ρ„Π°ΠΉΠ»Π°
%

Xi

Из ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ %i выдСляСтся Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°
%

Si

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² N ΠΈ X для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ %i измСняСтся Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„Π°ΠΉΠ»Π°

НапримСр, Ссли ΠΌΡ‹ находимся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ C:\Program Files\Far ΠΈ запустим ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ содСрТания:

Π¦ΠΈΠΊΠ»Ρ‹ ΠΈ связываниС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Как ΠΈ Π² рассмотрСнном Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ с составными выраТСниями, ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… срСды Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΠΎΠ±ΡŠΡΡΠ½ΠΈΠΌΡ‹Π΅ ошибки, связанныС с Ρ€Π°Π½Π½ΠΈΠΌΠΈ связываниСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ΠŸΡƒΡΡ‚ΡŒ имССтся ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ содСрТания:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *