Бинтаксис bat Ρ„Π°ΠΉΠ»ΠΎΠ²: ΠŸΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ (bat, Π±Π°Ρ‚Π½ΠΈΠΊΠΈ) Windows β€” mirAdmin

ΠžΡΠ½ΠΎΠ²Ρ‹ BAT Ρ„Π°ΠΉΠ»ΠΎΠ²

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅:

  • ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…
  • ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π²Ρ‹Π·ΠΎΠ²Π° bat-Ρ„Π°ΠΉΠ»Π°)
  • ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ условия IF
  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ
  • ИспользованиС Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠΎΠ΄Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹)

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

SET <Π˜ΠΌΡΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ>=<Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ>

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ SET прСдставляСт собой Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ возмоТностСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС. Он Π·Π°Π΄Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ подставляСтся вмСсто Π΅Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡ€ΠΈ любом использовании этого ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π½Π°ΠΊΠ°ΠΌΠΈ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π°. Π’Π°ΠΊ, Ссли Π·Π°Π΄Π°Π½ΠΎ (пСрСмСнная, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ³Ρ€Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π²ΡƒΠΊΠΎΠ²ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚Ρƒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°):

SET BLASTER=A220 I5 D1 P330

Ρ‚ΠΎ ΠΏΡ€ΠΈ использовании Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ конструкции:

ECHO %BLASTER%

Π½Π° экран Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ «A220 I5 D1 P330». ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° SET Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ окруТСния срСды (environment) ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌΠΈ послС выполнСния Π΄ΠΎ пСрСзапуска DOS (Ссли Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π΅ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π² памяти). Π’ΠΎ Π΅ΡΡ‚ΡŒ, Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ послС задания Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ. НаиболСС извСстной являСтся пСрСмСнная PATH, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ собой Π½Π°Π±ΠΎΡ€ ΠΏΡƒΡ‚Π΅ΠΉ для быстрого поиска Ρ„Π°ΠΉΠ»ΠΎΠ². Она задаСтся Π² Ρ„Π°ΠΉΠ»Π΅ autoexec.bat.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки
(ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π²Ρ‹Π·ΠΎΠ²Π° bat-Ρ„Π°ΠΉΠ»Π°)

%<Ρ†ΠΈΡ„Ρ€Π° 0-9>

Как ΠΈ Π² любом языкС, Π² языкС ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ использованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² bat-Ρ„Π°ΠΉΠ»Π°.

ВсСго ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ 10 ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… нСзависимых ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Для написания слоТных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ это довольно ΠΌΠ°Π»ΠΎ, хотя для ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ часто Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ ΠΈ 3-4. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ€Π°Π²Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ %0 Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ имя .bat-Ρ„Π°ΠΉΠ»Π° ΠΈ, Ссли Π²Ρ‹ ΡƒΠΊΠ°Π·Π°Π»ΠΈ, ΠΏΡƒΡ‚ΡŒ ΠΊ Π½Π΅ΠΌΡƒ. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ссли Π²Ρ‹ запустили Ρ„Π°ΠΉΠ» abc.bat со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ:

abc.bat a bc def

Ρ‚ΠΎ пСрСмСнная %0 Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ abc.bat, %1 Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ a, %2 Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ bc, Π° %3 — def. Π­Ρ‚ΠΎ свойство ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠΌΠΈΡΡ опСрациями.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 10 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ SHIFT.

Команда SHIFT позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ число ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π΄Π°Π»Π΅Π΅ 10. Однако, ΠΏΡ€ΠΈ этом Ρ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ соотвСтствСнно Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. Π˜Π½Ρ‹ΠΌΠΈ словами, ΠΊΠΎΠΌΠ°Π½Π΄Π° SHIFT сдвигаСт всС значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π½Π° ΠΎΠ΄ΠΈΠ½ шаг Π²Π»Π΅Π²ΠΎ. Π’ΠΎ Π΅ΡΡ‚ΡŒ, пСрСмСнная %0 Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Π²ΡˆΠ΅Π΅ΡΡ Π΄ΠΎ этого Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ %1, Π° пСрСмСнная %1 — Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ %2 Π΄ΠΎ сдвига. Однако, данная опСрация являСтся Π½Π΅ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΠΎΠΉ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π²ΠΈΠ½ΡƒΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ.

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

К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ cmd.exe соврСмСнных ОБ Windows 2000 ΠΈ ΡΡ‚Π°Ρ€ΡˆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ Π² конструкциях вСтвлСния, Ρ‡Ρ‚ΠΎ устраняСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ примСнСния IF с ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ. Π‘Π»ΠΎΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки. Выглядит это Ρ‚Π°ΠΊ (имитируя C/C++ indentation style):

if condition (

rem ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Π΅Ρ‚ΠΊΠΈ β€˜then’

rem . )

exit /b 1

)

rem УдаляСм ΠΈΠ· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° всС дСфисы для упрощСния ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

set BUILDMODE=%BUILDMODE:-=%

if «%BUILDMODE%» == «debug» (

echo INFO: УстанавливаСм debug-Ρ€Π΅ΠΆΠΈΠΌ окруТСния

set CCFLAGS=/Od /MDd /Z7

) else (

echo INFO: УстанавливаСм release-Ρ€Π΅ΠΆΠΈΠΌ окруТСния

set CCFLAGS=/O2 /MD

)

На ΠΌΠΎΠΉ взгляд, с этим ΡƒΠΆΠ΅ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΆΠΈΡ‚ΡŒ. Но, ΠΊΠ°ΠΊ всСгда, Тизнь Π½Π΅ Ρ‚Π°ΠΊ проста, ΠΊΠ°ΠΊ каТСтся. Π•ΡΡ‚ΡŒ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ΡΡ Π² Π±Π»ΠΎΠΊΠ°Ρ… then ΠΈ else, Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ выполнСния этих Π±Π»ΠΎΠΊΠΎΠ², Π° Π½Π΅ Π² процСссС выполнСния. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ это Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚:

if «%BUILDMODE%» == «debug» (

echo INFO: УстанавливаСм debug-Ρ€Π΅ΠΆΠΈΠΌ окруТСния

set OPTFLAGS=/Od

set CCFLAGS=%OPTFLAGS% /MDd /Z7

) else (

echo INFO: УстанавливаСм release-Ρ€Π΅ΠΆΠΈΠΌ окруТСния

set OPTFLAGS=/O2

set CCFLAGS=%OPTFLAGS% /MD

)

Π—Π°Π³Π²ΠΎΠ·Π΄ΠΊΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΎΠ±ΠΎΠΈΡ… Π±Π»ΠΎΠΊΠ°Ρ… подстановка ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ OPTFLAGS ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° Π² процСссС выполнСния этого Π±Π»ΠΎΠΊΠ°. БоотвСтствСнно, Π² CCFLAGS Π±ΡƒΠ΄Π΅Ρ‚ подставлСно Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ OPTFLAGS ΠΈΠΌΠ΅Π»Π° Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π°Ρ‡Π°Π»Π° выполнСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ if-Π±Π»ΠΎΠΊΠ°.

Π Π΅ΡˆΠ°Π΅Ρ‚ΡΡ эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡƒΡ‚Π΅ΠΌ использования ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ раскрытия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ Π² !…! вмСсто %…%, Π±ΡƒΠ΄ΡƒΡ‚ раскрыты Π² ΠΈΡ… значСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ нСпосрСдствСнного использования. Π”Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ использованиСм ΠΊΠ»ΡŽΡ‡Π° /V:ON ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ cmd.exe, Π»ΠΈΠ±ΠΎ использованиСм ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

setlocal enabledelayedexpansion

Π² тСкстС самого bat-Ρ„Π°ΠΉΠ»Π°. Π’Ρ‚ΠΎΡ€ΠΎΠΉ способ ΠΌΠ½Π΅ прСдставляСтся Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ – Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ запуска Ρ‚Π²ΠΎΠ΅Π³ΠΎ сцСнария с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ.

Π‘ ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ сказанного ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ Β«Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉΒ» ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ исправлСн Ρ‚Π°ΠΊ:

setlocal enabledelayedexpansion

if «%BUILDMODE%» == «debug» (

echo INFO: Setting up debug mode environment

set OPTFLAGS=/Od

set CCFLAGS=!OPTFLAGS! /MDd /Z7

) else (

echo INFO: Setting up release mode environment

set OPTFLAGS=/O2

set CCFLAGS=!OPTFLAGS! /MD

)

Π’ΠΎΡ‚ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ это ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ if-then-else Π±Π»ΠΎΠΊ. , ΠΈΠ½Π°Ρ‡Π΅ синтаксичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ путаСтся…

Но Π² любом случаС, это Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Π±Π΅Π·ΡƒΠΌΠ½ΠΎΠ³ΠΎ количСства ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ².

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

А ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² bat-Ρ„Π°ΠΉΠ»Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ? Π”Π°, ΠΌΠΎΠΆΠ½ΠΎ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΈΠ½ΠΎΠ³Π΄Π° Π΄Π°ΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ. ΠŸΡ€Π°Π²Π΄Π°, функциями это ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ условно.

Π•ΡΡ‚ΡŒ особый синтаксис ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ call, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° ΠΌΠ΅Ρ‚ΠΊΡƒ Π² этом ΠΆΠ΅ bat-Ρ„Π°ΠΉΠ»Π΅ с Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ΠΌ мСста, ΠΎΡ‚ΠΊΡƒΠ΄Π° Π±Ρ‹Π» ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ этот Π²Ρ‹Π·ΠΎΠ²:

call :ΠΌΠ΅Ρ‚ΠΊΠ° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ производится ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

exit /b [ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°]

ΠšΠ»ΡŽΡ‡ /b здСсь ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ΅Π½: Π±Π΅Π· Π½Π΅Π³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ Π²Ρ‹Ρ…ΠΎΠ΄ Π½Π΅ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π° ΠΈΠ· сцСнария Π²ΠΎΠΎΠ±Ρ‰Π΅.

Π—Π° подробностями Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС:

call /?

exit /?

Π§Ρ‚ΠΎ интСрСсно, ΠΊΠΎΠΌΠ°Π½Π΄Π° call с Ρ‚Π°ΠΊΠΈΠΌ синтаксисом ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ рСкурсивныС Π²Ρ‹Π·ΠΎΠ²Ρ‹ с автоматичСским созданиСм Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ° для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² %0-%9. Иногда это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ. Π’ΠΎΡ‚ классичСский ΠΏΡ€ΠΈΠΌΠ΅Ρ€ рСкурсивного подсчСта Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π»Π° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ языкС:

@echo off

call :factorial %1

echo %RESULT%

exit

rem Ѐункция для подсчСта значСния Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π»Π°

rem Π’Ρ…ΠΎΠ΄:

rem %1 Число, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π»

rem Π’Ρ‹Ρ…ΠΎΠ΄:

rem %RESULT% Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π»Π°

:factorial

if %1 == 0 (

set RESULT=1

exit /b

)

if %1 == 1 (

set RESULT=1

exit /b

)

set /a PARAM=%1 — 1

call :factorial %PARAM%

set /a RESULT=%1 * %RESULT%

exit /b

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹:

> factorial. bat 10

3628800

ИспользованиС Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
(ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠΎΠ΄Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹)

Π›ΡŽΠ±Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС ΠΊΠΎΠ΄ своСго Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ. ΠŸΡ€ΠΈΠ½ΡΡ‚ΠΎ ΠΏΡ€ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ноль, ΠΈΠ½Π°Ρ‡Π΅ — ΠΊΠΎΠ΄ ошибки. Иногда, ΠΈΠ»ΠΈ, Π²Π΅Ρ€Π½Π΅Π΅, часто, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° «ΡΠΎΠ·Π½Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ» Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ «ΡƒΠ·Π½Π°Ρ‚ΡŒ» Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ подробности Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹. НапримСр, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ клавиши, Π° .bat-Ρ„Π°ΠΉΠ» ΠΏΠΎ Π½Π΅ΠΌΡƒ выполняСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ дСйствия.

Каким ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹? Для этого прСдусмотрСно ΠΊΠ»ΡŽΡ‡Π΅Π²Π°Ρ пСрСмСнная ERRORLEVEL.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° с errorlevel’Π°ΠΌΠΈ:

@ECHO OFF

REM ЗапускаСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ prg1.exe

PRG1.EXE

REM Анализ ΠΊΠΎΠ΄Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ

IF ERRORLEVEL 2 GOTO FILENOTFOUND

IF ERRORLEVEL 1 GOTO WRITEERROR

IF ERRORLEVEL 0 GOTO EXITOK

GOTO ONEXIT

:FILENOTFOUND

ECHO Ошибка! Ѐайл нС найдСн!

GOTO ONEXIT

:WRITEERROR

ECHO Ошибка записи!

GOTO ONEXIT

:EXITOK

ECHO ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π° Π±Π»Π°Π³ΠΎΠΏΠΎΠ»ΡƒΡ‡Π½ΠΎ.

GOTO ONEXIT

:ONEXIT

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ — Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ начинаСтся Π½Π΅ с нуля, Π° с максимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ значСния. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ подобная ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚: «Π΅ΡΠ»ΠΈ errorlevel большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π΅Π½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, Ρ‚ΠΎ…». Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ссли ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ, начиная с нуля, любоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ истинным Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΆΠ΅ строкС, Ρ‡Ρ‚ΠΎ Π½Π΅Π²Π΅Ρ€Π½ΠΎ.

Π­Ρ‚ΠΎ самая распространСнная ошибка Π² ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ….

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ for Π² bat-Ρ„Π°ΠΉΠ»Π°Ρ… | windows

Команда FOR Π·Π°Π΄Π°Π΅Ρ‚ запуск Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ мноТСства.


Π Π°Π±ΠΎΡ‚Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ for ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

a) ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ…
b) ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ†ΠΈΠΊΠ»Π° for (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ %%G) Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ…
c) Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ (ΠΈΠ½ΠΎΠ³Π΄Π° Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ участвуСт %%G, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°)
d) Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ шаги a), b), c), ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ достигнуто ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ†ΠΈΠΊΠ»Π°.

ΠžΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° for описана Π² справкС w2k.

Бинтаксис

for {% | %%}< пСрСмСнная > in (< мноТСство >) do < ΠΊΠΎΠΌΠ°Π½Π΄Π° > [< ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ΠšΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ > ]

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ for ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:







ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
{%%Β |Β %}< пСрСмСнная >ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт Π·Π°ΠΌΠ΅Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ Π·Π½Π°ΠΊ %, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ for ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки (Π½Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅). Π”Π²Π° Π·Π½Π°ΠΊΠ° %% ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ for, выполняСмой Π² составС ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° (*.bat ΠΈΠ»ΠΈ *.cmd). ИмСна ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ рСгистру символов, ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ составлСны ΠΈΠ· символов Π±ΡƒΠΊΠ² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ %a, %b ΠΈΠ»ΠΈ %c).
(< мноТСство >)ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΈΠ»ΠΈ тСкстовых строк, ΠΈΠ»ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ итСрация ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ for. НаличиС ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобок ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.
< ΠΊΠΎΠΌΠ°Π½Π΄Π° >ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, выполняСмого для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта мноТСства (см. ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€).
ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ΠšΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉΠ‘Ρ‚Ρ€ΠΎΠΊΠΈΠ—Π°Π΄Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для использования с ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ (см. ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€).
/?ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ справки Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ for.

ΠšΠΎΠΌΠ°Π½Π΄Ρƒ for ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ (*.bat, *.cmd) ΠΈΠ»ΠΈ нСпосрСдствСнно Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС.

Атрибуты. К ΠΊΠΎΠΌΠ°Π½Π΄Π΅ for ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ пСрСчислСнныС Π½ΠΈΠΆΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹.

β€’ Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ for пСрСмСнная %пСрСмСнная (ΠΈΠ»ΠΈ %%пСрСмСнная) Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ тСкстовой строкой ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° мноТСство, ΠΏΠΎΠΊΠ° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ всС Ρ„Π°ΠΉΠ»Ρ‹ этого мноТСства.
β€’ ИмСна ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² пСрСмСнная ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ for ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ рСгистр Π±ΡƒΠΊΠ²Ρ‹, ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π½Π΅ большС 52 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….
β€’ Для обозначСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° пСрСмСнная ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ Π·Π½Π°ΠΊΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ†ΠΈΡ„Ρ€ 0–9, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² %0–%9. Для простых ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π²ΠΏΠΎΠ»Π½Π΅ достаточно ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с ΠΎΠ΄Π½ΠΈΠΌ Π·Π½Π°ΠΊΠΎΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ %%f.
β€’ Π’ слоТных ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ обозначСния для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° пСрСмСнная.

Π—Π°Π΄Π°Π½ΠΈΠ΅ мноТСства Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ мноТСство ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡƒ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ нСсколько Π³Ρ€ΡƒΠΏΠΏ Ρ„Π°ΠΉΠ»ΠΎΠ². Для задания Π³Ρ€ΡƒΠΏΠΏ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ подстановочныС Π·Π½Π°ΠΊΠΈ (* ΠΈ ?). Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ мноТСства Ρ„Π°ΠΉΠ»ΠΎΠ² ΡΠ²Π»ΡΡŽΡ‚ΡΡ допустимыми:

(*.doc)
(*.doc *.txt *.me)
(jan*.doc jan*.rpt feb*.doc feb*.rpt)
(ar??1991.* ap??1991.*)

Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° for, ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ мноТСство замСняСт ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ %пСрСмСнная (ΠΈΠ»ΠΈ %%пСрСмСнная), Π° Π·Π°Ρ‚Π΅ΠΌ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ этого значСния выполняСтся указанная ΠΊΠΎΠΌΠ°Π½Π΄Π°. Π­Ρ‚ΠΎ продолТаСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ всС Ρ„Π°ΠΉΠ»Ρ‹ (ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ Ρ„Π°ΠΉΠ»ΠΎΠ²), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° мноТСство.

in ΠΈ do. ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова in ΠΈ do Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, Π½ΠΎ ΠΎΠ½ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ for. Если ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ ΠΈΠ· этих слов ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ, Π½Π° экран Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ сообщСниС ΠΎΠ± ошибкС.

ИспользованиС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ for. Если Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ процСссора Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹ (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ), Ρ‚ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ for.

β€’ Волько ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ

Если ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ мноТСство содСрТит подстановочныС Π·Π½Π°ΠΊΠΈ (* ΠΈ ?), ΠΊΠΎΠΌΠ°Π½Π΄Π°, указанная Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°, выполняСтся для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° (ΠΊΡ€ΠΎΠΌΠ΅ мноТСства Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅), ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ мноТСство. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис.
for /D {%% | %}пСрСмСнная in (мноТСство) do ΠΊΠΎΠΌΠ°Π½Π΄Π° [ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ΠšΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ]

β€’ РСкурсивная

ΠŸΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎ Π΄Π΅Ρ€Π΅Π²Ρƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² с ΠΊΠΎΡ€Π½Π΅ΠΌ Π² [диск:]ΠΏΡƒΡ‚ΡŒ, выполняя ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ for для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π² Π΄Π΅Ρ€Π΅Π²Π΅. Если послС ΠΊΠ»ΡŽΡ‡Π° /R Π½Π΅ Π·Π°Π΄Π°Π½ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, прСдполагаСтся Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. Если ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ мноТСство Π·Π°Π΄Π°Π½ ΠΎΠ΄Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ (.), Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° просто пСрСчислит ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π² Π΄Π΅Ρ€Π΅Π²Π΅. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис.
for /R [[диск:]ΠΏΡƒΡ‚ΡŒ] {%% | %}пСрСмСнная in (мноТСство) do ΠΊΠΎΠΌΠ°Π½Π΄Π° [ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ΠšΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ]

β€’ Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ для установки Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния (ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅#), Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ ΠΏΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΏΠΎΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ прСвысит ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ мноТСства (ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅#). /L Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ, сравнив ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅# с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅#. Если ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅# мСньшС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅#, Ρ‚ΠΎ выполняСтся ΠΊΠΎΠΌΠ°Π½Π΄Π°. Когда пСрСмСнная ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ прСвысит ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅#, командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° ΠΏΠΎΠΊΠΈΠ΄Π°Π΅Ρ‚ Ρ†ΠΈΠΊΠ». Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ шаг# для пСрСмСщСния Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΡƒΠ±Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. НапримСр, (1,1,5) создаСт ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Β«1 2 3 4 5Β», Π° (5,-1,1) создаСт ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Β«5 4 3 2 1Β». Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис.
for /L {%% | %}пСрСмСнная in (ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅#,шаг#,ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅#) do ΠΊΠΎΠΌΠ°Π½Π΄Π° [ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ΠšΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ]

β€’ Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ ΠΈ Ρ€Π°Π·Π±ΠΎΡ€ Ρ„Π°ΠΉΠ»ΠΎΠ²

Π Π°Π·Π±ΠΎΡ€ Ρ„Π°ΠΉΠ»ΠΎΠ² слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, строк ΠΈ содСрТимого Ρ„Π°ΠΉΠ»Π°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ для опрСдСлСния содСрТимого ΠΈΠ»ΠΈ строк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ трСбуСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅Π‘Π»ΠΎΠ²Π°Π Π°Π·Π±ΠΎΡ€Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для измСнСния Ρ€Π°Π·Π±ΠΎΡ€Π°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅Π‘Π»ΠΎΠ²Π°Π Π°Π·Π±ΠΎΡ€Π° для указания ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π‘Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° ΠΊΠ»ΡŽΡ‡ /F провСряСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€.

Π Π°Π·Π±ΠΎΡ€ Ρ„Π°ΠΉΠ»ΠΎΠ² состоит Π² Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Π²Ρ‹Π²ΠΎΠ΄Π°, строки ΠΈΠ»ΠΈ содСрТимого Ρ„Π°ΠΉΠ»Π°, Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠΈ Π΅Π³ΠΎ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ строки тСкста ΠΈ Ρ€Π°Π·Π±ΠΎΡ€Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки Π½Π° ноль ΠΈΠ»ΠΈ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹. Π¦ΠΈΠΊΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ for Π·Π°Ρ‚Π΅ΠΌ вызываСтся с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ, установлСнной Π² ΠΌΠ°Ρ€ΠΊΠ΅Ρ€. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ /F ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΡ‚Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ элСмСнт ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. ΠŸΡƒΡΡ‚Ρ‹Π΅ строки ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Π°ΠΊΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ синтаксис.
for /F [«ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅Π‘Π»ΠΎΠ²Π°Π Π°Π·Π±ΠΎΡ€Π°»] {%% | %}пСрСмСнная lin (ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎΠ˜ΠΌΠ΅Π½Π€Π°ΠΉΠ»ΠΎΠ²) do ΠΊΠΎΠΌΠ°Π½Π΄Π° [ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ΠšΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ]
for /F [«ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅Π‘Π»ΠΎΠ²Π°Π Π°Π·Π±ΠΎΡ€Π°»] {%% | %}пСрСмСнная in («Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°») do ΠΊΠΎΠΌΠ°Π½Π΄Π° [ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ΠšΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ]
for /F [«ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅Π‘Π»ΠΎΠ²Π°Π Π°Π·Π±ΠΎΡ€Π°»] {%% | %}пСрСмСнная in (‘ΠΊΠΎΠΌΠ°Π½Π΄Π°’) do ΠΊΠΎΠΌΠ°Π½Π΄Π° [ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ΠšΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ]

АргумСнт ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎΠ˜ΠΌΠ΅Π½Π€Π°ΠΉΠ»ΠΎΠ² Π·Π°Π΄Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ нСсколько ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ². ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ» открываСтся, считываСтся ΠΈ обрабатываСтся Π΄ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎΠ˜ΠΌΠ΅Π½Π€Π°ΠΉΠ»ΠΎΠ². Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ стандартноС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Π±ΠΎΡ€Π°, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ «ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅Π‘Π»ΠΎΠ²Π°Π Π°Π·Π±ΠΎΡ€Π°». Π­Ρ‚ΠΎ строка, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Π°Ρ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, которая содСрТит ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ нСсколько ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов для указания Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² Ρ€Π°Π·Π±ΠΎΡ€Π°.

Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ usebackq, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π½ΠΈΠΆΠ΅ синтаксисов:
for /F [«usebackqΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅Π‘Π»ΠΎΠ²Π°Π Π°Π·Π±ΠΎΡ€Π°»] {%% | %}пСрСмСнная in («ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎΠ˜ΠΌΠ΅Π½Π€Π°ΠΉΠ»ΠΎΠ²») do ΠΊΠΎΠΌΠ°Π½Π΄Π° [ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ΠšΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ]
for /F [«usebackqΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅Π‘Π»ΠΎΠ²Π°Π Π°Π·Π±ΠΎΡ€Π°»] {%% | %}пСрСмСнная in (‘Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°’) do ΠΊΠΎΠΌΠ°Π½Π΄Π° [ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ΠšΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ]
for /F [«usebackqΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅Π‘Π»ΠΎΠ²Π°Π Π°Π·Π±ΠΎΡ€Π°»] {%% | %}пСрСмСнная in (‘ΠΊΠΎΠΌΠ°Π½Π΄Π°’) do ΠΊΠΎΠΌΠ°Π½Π΄Π° [ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ΠšΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ]

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ пСрСчислСны ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова Ρ€Π°Π·Π±ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅Π‘Π»ΠΎΠ²Π°Π Π°Π·Π±ΠΎΡ€Π°.







ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ словоОписаниС
eol=cΠ—Π°Π΄Π°Π΅Ρ‚ символ ΠΊΠΎΠ½Ρ†Π° строки (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ символ).
skip=NΠ—Π°Π΄Π°Π΅Ρ‚ число строк, пропускаСмых Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ„Π°ΠΉΠ»Π°.
delims=xxxΠ—Π°Π΄Π°Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ. ЗамСняСт Π½Π°Π±ΠΎΡ€ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, состоящий ΠΈΠ· ΠΏΡ€ΠΎΠ±Π΅Π»Π° ΠΈ символа табуляции.
tokens=X,Y,M-NΠ—Π°Π΄Π°Π΅Ρ‚ элСмСнты, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки Π² Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° for ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π€ΠΎΡ€ΠΌΠ° M-N Π·Π°Π΄Π°Π΅Ρ‚ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ элСмСнты с M-Π³ΠΎ ΠΏΠΎ N-Ρ‹ΠΉ. Если послСдним символом строки tokens= являСтся Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠ° (*), Ρ‚ΠΎ размСщаСтся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ пСрСмСнная, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ помСщаСтся остаток строки послС Ρ€Π°Π·Π±ΠΎΡ€Π° послСднСго элСмСнта.
usebackqΠ—Π°Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ для ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎΠ˜ΠΌΠ΅Π½Π€Π°ΠΉΠ»ΠΎΠ². Π—Π°Π΄Π°Π΅Ρ‚ исполнСниС строки, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π° строки Π² ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ… β€” ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² символьной строкС.

β€’ ΠŸΠΎΠ΄ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Π‘Ρ‹Π»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ подстановок для ссылок Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² for. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π½ΠΈΠΆΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Π° пСрСчисляСт Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ синтаксичСских конструкций (Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ I).













ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ с ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
%~IΠ Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ %I, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ удаляСт ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰ΠΈΠ΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ («»).
%~fIΠ Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ %I Π΄ΠΎ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡƒΡ‚ΠΈ.
%~dIΠ—Π°ΠΌΠ΅Π½Π° %I ΠΈΠΌΠ΅Π½Π΅ΠΌ диска.
%~pIΠ—Π°ΠΌΠ΅Π½Π° %I Π½Π° ΠΏΡƒΡ‚ΡŒ.
%~nIΠ—Π°ΠΌΠ΅Π½Π° %I ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„Π°ΠΉΠ»Π°.
%~xIΠ—Π°ΠΌΠ΅Π½Π° %I Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°.
%~sIΠ—Π°ΠΌΠ΅Π½Π° ΠΏΡƒΡ‚Π΅ΠΌ, содСрТащим Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π°.
%~aIΠ—Π°ΠΌΠ΅Π½Π° %I Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°.
%~tI

Π—Π°ΠΌΠ΅Π½Π° %I Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»Π°.

%~zIΠ—Π°ΠΌΠ΅Π½Π° %I Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Ρ„Π°ΠΉΠ»Π°.
%~$PATH:IПоиск Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ…, пСрСчислСнных Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ срСды PATH, ΠΈ Π·Π°ΠΌΠ΅Π½Π° %I ΠΏΠΎΠ»Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. Если пСрСмСнная срСды Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° ΠΈΠ»ΠΈ поиск Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ» Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΏΡƒΡΡ‚ΡƒΡŽ строку.

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π½ΠΈΠΆΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Π° пСрСчисляСт ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для получСния Π±ΠΎΠ»Π΅Π΅ слоТных Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².







ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ с ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
%~dpIΠ—Π°ΠΌΠ΅Π½Π° %I ΠΈΠΌΠ΅Π½Π΅ΠΌ диска ΠΈ ΠΏΡƒΡ‚Π΅ΠΌ.
%~nxIΠ—Π°ΠΌΠ΅Π½Π° %I ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„Π°ΠΉΠ»Π° ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ.
%~fsIΠ—Π°ΠΌΠ΅Π½Π° %I ΠΏΠΎΠ»Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΡƒΡ‚ΠΈ с ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ.
%~dp$PATH:IПоиск Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ…, пСрСчислСнных Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ срСды PATH, ΠΈ Π·Π°ΠΌΠ΅Π½Π° %I ΠΈΠΌΠ΅Π½Π΅ΠΌ диска ΠΈ ΠΏΡƒΡ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.
%~ftzaIΠ—Π°ΠΌΠ΅Π½Π° %I строкой, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ dir.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… %I ΠΈ PATH ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ допустимыми значСниями. ДопустимоС имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ for ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π΅Ρ‚ синтаксис %~.

ИспользованиС прописных Π±ΡƒΠΊΠ² Π² ΠΈΠΌΠ΅Π½Π°Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ %I, ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ восприятиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π½Π΅Π΄ΠΎΡ€Π°Π·ΡƒΠΌΠ΅Π½ΠΈΠΉ с ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… строчныС ΠΈ прописныС Π±ΡƒΠΊΠ²Ρ‹ Π½Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ.

Π Π°Π·Π±ΠΎΡ€ строки. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ for /F ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована нСпосрСдствСнно для строки. Для этого помСститС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎΠ˜ΠΌΠ΅Π½Π€Π°ΠΉΠ»ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ скобками Π² ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ (‘ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎΠ˜ΠΌΠ΅Π½Π€Π°ΠΉΠ»ΠΎΠ²’). ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎΠ˜ΠΌΠ΅Π½Π€Π°ΠΉΠ»ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ воспринят ΠΊΠ°ΠΊ одиночная строка Π²Π²ΠΎΠ΄Π° ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π½.

Π Π°Π·Π±ΠΎΡ€ Π²Ρ‹Π²ΠΎΠ΄Π°. ΠšΠΎΠΌΠ°Π½Π΄Ρƒ for /F ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π°Π·Π±ΠΎΡ€Π° Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Для этого помСститС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎΠ˜ΠΌΠ΅Π½Π€Π°ΠΉΠ»ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ скобками Π² ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. Он Π±ΡƒΠ΄Π΅Ρ‚ воспринят ΠΊΠ°ΠΊ командная строка, которая пСрСдаСтся Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΌΡƒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Cmd.exe, Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² памяти ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ ΠΎΠ½ΠΈ являлись Ρ„Π°ΠΉΠ»ΠΎΠΌ.

[ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹]

Π’ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ for:
for %%пСрСмСнная in (мноТСство) do ΠΊΠΎΠΌΠ°Π½Π΄Π° [ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ΠšΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ]

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ содСрТимоС всСх Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ DOC ΠΈΠ»ΠΈ TXT, Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ замСняСмой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ %f, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:
for %%f in (*.doc *.txt) do type %%f

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .doc ΠΈΠ»ΠΈ .txt Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒΡΡ вмСсто ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ %f, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ содСрТимоС всСх Ρ„Π°ΠΉΠ»ΠΎΠ². Для использования этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ %f Π½Π° %%Π°. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС пСрСмСнная игнорируСтся ΠΈ выводится сообщСниС ΠΎΠ± ошибкС.

Π§Ρ‚ΠΎΠ±Ρ‹ произвСсти Ρ€Π°Π·Π±ΠΎΡ€ Ρ„Π°ΠΉΠ»Π°, игнорируя ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:
for /F «eol=; tokens=2,3* delims=,» %i in (myfile.txt) do @echo %i %j %k

Данная ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ Ρ€Π°Π·Π±ΠΎΡ€ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки Π² Ρ„Π°ΠΉΠ»Π΅ Myfile.txt, игнорируя строки, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с Ρ‚ΠΎΡ‡ΠΊΠΈ с запятой, ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ элСмСнты ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки Π² Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ FOR. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ запятыми ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ. Π’Π΅Π»ΠΎ инструкции FOR ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ %i для получСния Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ элСмСнта, %j для получСния Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ элСмСнта ΠΈ %k для получСния ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ элСмСнтов Π² строкС. Если ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² содСрТат ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, ΠΈΡ… слСдуСт Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, «Π˜ΠΌΡΠ€Π°ΠΉΠ»Π°»). Для использования ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° usebackq. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ символьной строки для Ρ€Π°Π·Π±ΠΎΡ€Π°.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ %i объявлСна явно Π² инструкции FOR. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ %j ΠΈ %k ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ явно ΠΏΡ€ΠΈ использовании tokens=. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ tokens= ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄ΠΎ 26 элСмСнтов, Ссли это Π½Π΅ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с ΠΈΠΌΠ΅Π½Π΅ΠΌ, большим Π±ΡƒΠΊΠ²Ρ‹ «z» ΠΈΠ»ΠΈ «Z».

Для Ρ€Π°Π·Π±ΠΎΡ€Π° Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ помСщСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎΠ˜ΠΌΠ΅Π½Π€Π°ΠΉΠ»ΠΎΠ² Π² скобки ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ (ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ список ΠΈΠΌΠ΅Π½ всСх ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния):
for /F «usebackq delims==» %i IN (`set`) DO @echo %i

Π˜Ρ‰Π΅ΠΌ Π² дирСкториях Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ html содСрТащиС строку google:
for /R %%f in (*.html) do @findstr /m «google» %%f

FOR /L
Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ для Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° чисСл
Бинтаксис
FOR /L %%parameter IN (start,step,end) DO command

Π“Π΄Π΅
Β Β  startΒ  Β  Β  ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ)
Β Β  step Β  Β  Β  ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ числа для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ шага
Β Β  endΒ  Β  Β  Β  послСднСС число (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ)
Β Β  commandΒ  Β  выполняСмая ΠΊΠΎΠΌΠ°Π½Π΄Π°, здСсь ΠΆΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки для Π½Π΅Ρ‘
Β Β  %%parameter измСняСмый ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠ΅ Ρ†ΠΈΠΊΠ»Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ (пСрСмСнная Ρ†ΠΈΠΊΠ»Π°)

Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ %%G, Π° Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС %G (Ρ‚Π°ΠΊΠΈΠ΅ ΡƒΠΆ ΠœΠΈΠΊΡ€ΠΎΡΠΎΡ„Ρ‚ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π» ΠΏΡ€Π°Π²ΠΈΠ»Π°). (20,-5,10) Π±ΡƒΠ΄Π΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ 20 15 10, Π° (1,1,5) ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ 1 2 3 4 5.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€
FOR /L %%G IN (1,1,5) DO echo %%G

МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСчисловой список, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:
FOR %%G IN (Sun Mon Tue Wed Thur Fri Sat) DO echo %%G

[Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ for]

FOR — Ρ†ΠΈΠΊΠ» ΠΏΠΎ всСм Ρ„Π°ΠΉΠ»Π°ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ (ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ Π΅Ρ‘ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ)
FOR /R — Ρ†ΠΈΠΊΠ» ΠΏΠΎ всСм Ρ„Π°ΠΉΠ»Π°ΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ
FOR /D — Ρ†ΠΈΠΊΠ» Ρ‡Π΅Ρ€Π΅Π· нСсколько ΠΏΠ°ΠΏΠΎΠΊ
FOR /F — Ρ†ΠΈΠΊΠ» Ρ‡Π΅Ρ€Π΅Π· слова Π² тСкстовом Ρ„Π°ΠΉΠ»Π΅ ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

syntax-FOR-Files
Β Β  Β  FOR %%parameter IN (set) DO command
syntax-FOR-Files-Rooted at Path
Β Β  Β  FOR /R [[drive:]path] %%parameter IN (set) DO command
syntax-FOR-Folders
Β Β  Β  FOR /D %%parameter IN (folder_set) DO command
syntax-FOR-List of numbers
Β Β  Β  FOR /L %%parameter IN (start,step,end) DO command
syntax-FOR-File contents
Β Β  Β  FOR /F [«options»] %%parameter IN (filenameset) DO command
Β Β  Β  FOR /F [«options»] %%parameter IN («Text string to process») DO command
syntax-FOR-Command Results
Β Β  Β  FOR /F [«options»] %%parameter IN (‘command to process’) DO command

[БвязанныС с for ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹]

FORFILES (w2003 Server) — Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° списка Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ для отобраТСния ΠΈΠ»ΠΈ использования ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π² bat-Ρ„Π°ΠΉΠ»Π΅
GOTO ΠΌΠ΅Ρ‚ΠΊΠ° — прямой ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° строку Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½ΡƒΡŽ строкой :ΠΌΠ΅Ρ‚ΠΊΠ°
IF — условноС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

[Equivalent Linux BASH commands]

for — Expand words, and execute commands
case — Conditionally perform a command
eval — Evaluate several commands/arguments
if — Conditionally perform a command
gawk — Find and Replace text within file(s)
m4 — Macro processor
until — Execute commands (until error)
while — Execute commands

[УсловныС обозначСния форматирования]








Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
ΠšΡƒΡ€ΡΠΈΠ²Π‘Π²Π΅Π΄Π΅Π½ΠΈΡ, Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ
ΠŸΠΎΠ»ΡƒΠΆΠΈΡ€Π½Ρ‹ΠΉ ΡˆΡ€ΠΈΡ„Ρ‚Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹, Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
ΠœΠ½ΠΎΠ³ΠΎΡ‚ΠΎΡ‡ΠΈΠ΅ (. ..)ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π²Π΅Π΄Π΅Π½ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС нСсколько Ρ€Π°Π·
Π’ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках ([])ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ элСмСнты
Π’ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках ({}), Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠ΅ΠΉ (|). ΠŸΡ€ΠΈΠΌΠ΅Ρ€: {even|odd}Набор Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ², ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½
Courier fontΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠ»ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅

[Бсылки]

1. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ программирования Π² bat-Ρ„Π°ΠΉΠ»Π°Ρ….

ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ

β€” ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ / Windows Shell

Π’ этой Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ содСрТится ΠΎΠ±Π·ΠΎΡ€ Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ².
Π­Ρ‚Π° докумСнтация Π½Π΅ являСтся ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰ΠΈΠΌ справочником ΠΏΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»Π°ΠΌ, Π½ΠΎ прСдоставляСт
Π²Π°ΠΆΠ½Ρ‹ΠΉ Ρ„ΠΎΠ½ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ для написания ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ².

НиТС пСрСчислСны ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ рСсурсы Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅.
Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ указатСля ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сайта, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ
ΡΠ·Ρ‹ΠΊΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ поиск Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅.

  • ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Windows β€” ссылка Microsoft
  • Π’ΠΈΠΊΠΈΠΊΠ½ΠΈΠ³Π° ΠΏΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΌ сцСнариям Windows β€” ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ справочник
  • Π£Ρ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΌΡƒ скрипту

  • ΠΎΡ‚ Tutorials Point

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π²Π°ΠΆΠ½Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹ для Π½Π°Ρ‡Π°Π»Π°:

  • Имя ΠΈ мСстополоТСниС ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°
  • ΠΠ΅Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊ рСгистру
  • Запуск ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²
  • ΠŸΠ΅Ρ€Π²Π°Ρ линия
  • Основная Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°
  • ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ
  • ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅
  • Π­Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΊΠΈ
  • ВстроСнныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ внСшниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

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

  • Π²Ρ‹Ρ…ΠΎΠ΄ ЗаявлСниС — Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° (ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ)
  • if ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ — if условный Π±Π»ΠΎΠΊ
  • для ЗаявлСниС — для ΠΏΠ΅Ρ‚Π΅Π»ΡŒ
  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Имя ΠΈ мСстополоТСниС ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°

ИмСна ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ . bat (хотя Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ .cmd ),
ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Windows (ΠΏΠΎ ассоциации Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»Π°), Ρ‡Ρ‚ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½ с ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ cmd .
Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ .exe , Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ исполняСмыС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

БоглашСниС ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ² для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ исполняСмых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ отличаСтся ΠΎΡ‚ Linux,
Π³Π΄Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€Π°Π²Π° Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, установлСнныС для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ„Π°ΠΉΠ» Π±Ρ‹Π» исполняСмым
(ΠΈΠ»ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, sh имя_сцСнария ).
Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Linux Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅, Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠ°ΠΊ .sh ΠΈΠ»ΠΈ .bash ΠΈ Ρ‚.Π΄.
Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ мнСния ΠΎ Ρ‚ΠΎΠΌ, являСтся Π»ΠΈ использованиС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ для исполняСмых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π»ΡƒΡ‡ΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ.
Однако Π² смСшанной срСдС, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Cygwin, Git Bash, MinGW ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ систСмС, Π³Π΄Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Linux
Π² основной ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС Windows ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ² для сцСнариСв Linux, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹.
БистСма контроля вСрсий Git ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ «исполняСмый Π±ΠΈΡ‚Β» для Ρ„Π°ΠΉΠ»Π°, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ являСтся исполняСмым,
Π½ΠΎ это Π½Π΅ относится ΠΊ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»Π°ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Windows смотрит Π½Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для File Explorer Π½Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ².
Однако ΠΏΡ€ΠΈ установкС Ρ„Π»Π°ΠΆΠΊΠ° File Explorer View / File name extensions ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ²,
Ρ‡Ρ‚ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ просмотр ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС.

ΠŸΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π² любой ΠΏΠ°ΠΏΠΊΠ΅.
хотя ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ смысл ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ соглашСния, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΏΠ°ΠΏΠΊΠ΅ bin ,
ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для исполняСмых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТат Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ содСрТимоС, Π° Π½Π΅ тСкст.
Если ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» глобально ΠΏΠΎΠ»Π΅Π·Π΅Π½, Ρ‚ΠΎ сохранСниС Π² ΠΏΠ°ΠΏΠΊΡƒ Π² PATH ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ смысл (см. ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Π΄Π΅Π»).

ΠΠ΅Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊ рСгистру

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма Windows ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° cmd ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ рСгистру, ΠΊΠΎΠ³Π΄Π°
ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΏΡƒΡ‚Π΅ΠΉ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ.
Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ DIR ΠΈΠ»ΠΈ dir .
Π­Ρ‚ΠΎ отличаСтся ΠΎΡ‚ Linux, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ чувствитСлСн ΠΊ рСгистру.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² частности внСшнСС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, установлСнноС Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅,
ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊ рСгистру ΠΈΠ»ΠΈ Π½Π΅Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊ рСгистру,
Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Запуск ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²

ΠŸΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки cmd , Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² Ρ„Π°ΠΉΠ» Π² ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ΅ ,
ΠΈΠ»ΠΈ ΠΏΡƒΡ‚Π΅ΠΌ Π²Ρ‹Π·ΠΎΠ²Π° ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈΠ· исполняСмой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Java, Python ΠΈΠ»ΠΈ C#,
ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ трСбуСтся Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ cmd с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°.
Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ языков ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ.

Если ΠΏΠ°ΠΏΠΊΠ°, содСрТащая ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ срСды PATH ,
Π·Π°Ρ‚Π΅ΠΌ Π²Π²ΠΎΠ΄ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС cmd с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ . bat Π±Π΅Π· Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ запуску ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.
ΠŸΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, ввСдя ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ.
Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Linux, Windows запустит ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅, Π΄Π°ΠΆΠ΅ Ссли тСкущая ΠΏΠ°ΠΏΠΊΠ° ( . ) Π½Π΅ находится Π² PATH .
Π’ Linux, Ссли . отсутствуСт Π² ΠΏΡƒΡ‚ΠΈ, Ρ‚ΠΎ сцСнарий ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Linux ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ с ./scriptname .

Π•ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сообраТСния ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ запуска ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ cmd
ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.
НапримСр, Ссли ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»,
слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ call , Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ:

 @эхо Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ
rem Основной ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»
Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»2.bat
 

Если Π²Ρ‹Π·ΠΎΠ² Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°,
Ρ‚ΠΎΠ³Π΄Π° основной ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ΠΉΠ΄Π΅Ρ‚ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ».
Π­Ρ‚ΠΎ сбиваСт с Ρ‚ΠΎΠ»ΠΊΡƒ, Ссли Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ послС Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.

ΠŸΠ΅Ρ€Π²Π°Ρ линия

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ сцСнариСв ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Linux, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ #!program для указания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, запускаСмой для сцСнария ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ,
пСрвая строка ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ значСния для
командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° ΠΈΠ»ΠΈ опСрационная систСма.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΈ запускС ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° каТдая строка выводится Π½Π° стандартный Π²Ρ‹Π²ΠΎΠ΄.
Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡˆΠ΅Π»ΠΎΠΌΠ»ΡΡŽΡ‰ΠΈΠΌ, ΠΈ поэтому ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ пСрвая строка ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для
ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ эхо-Π²Ρ‹Ρ…ΠΎΠ΄:

 @эхо Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ
 

Основная Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°

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

 @эхо Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ
rem Π˜ΠΌΡΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ - ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС
ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ = 1. 0.0
rem ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ находится скрипт
rem β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ мСстополоТСния
ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ сцСнария =% ~ dp0
rem Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ \ ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ scriptFolder
ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ scriptFolder=%scriptFolder:~0,-1%
ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ имя_сцСнария=%~nx0
rem ΠŸΠ°Ρ€ΡΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ простой ΠΏΠΎΠ΄Ρ…ΠΎΠ΄
Ссли "%1%"=="/h" ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ printUsage
Ссли "%2%"=="/h" ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ printUsage
rem Π’ΡΡ‚Π°Π²ΡŒΡ‚Π΅ сюда Π»ΠΎΠ³ΠΈΠΊΡƒ.
rem Π’Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, просто Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ `call` Π²ΠΏΠ΅Ρ€Π΅Π΄ΠΈ.
Π²Ρ‹Π·ΠΎΠ² :функция1 Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹...
rem ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
:функция1
rem НСмного логики
rem Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
Π²Ρ‹Ρ…ΠΎΠ΄ / Π± 0
rem ИспользованиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ
:printUsage
эхо.
эхо ИспользованиС здСсь...
ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Ρƒ0
rem ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Π²Ρ‹Ρ…ΠΎΠ΄
:Π²Ρ‹Ρ…ΠΎΠ΄0
Π²Ρ‹Ρ…ΠΎΠ΄ / Π± 0
 

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ rem .

  • Π‘ΠΌ. Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ rem

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ использованиС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π².

 @эхо Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ
Ρ€Π΅ΠΌ ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ. 
rem Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ.
   rem OK, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ отступ для ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Π±Π»ΠΎΠΊΠ΅ «Ссли» ΠΈΠ»ΠΈ «для».
 
  • МоТно Π΄Π΅Π»Π°Ρ‚ΡŒ отступ для ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Π±Π»ΠΎΠΊΠ°Ρ… «Ссли» ΠΈΠ»ΠΈ «для».
  • НСкоторыС программисты ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ ( :: ) ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ нСдопустимыС ΠΌΠ΅Ρ‚ΠΊΠΈ для Π½Π°Ρ‡Π°Π»Π° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π².
    Π₯отя это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… программистов,
    рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ rem для вставки ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π².

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ с использованиСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ синтаксиса.
МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ строки, Ρ†Π΅Π»Ρ‹Π΅ числа ΠΈ числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой;
ΠΎΠ΄Π½Π°ΠΊΠΎ со строками ΠΏΡ€ΠΎΡ‰Π΅ всСго ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅Π»ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

 ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ = ΠΏΡ€ΠΈΠ²Π΅Ρ‚ ΠΌΠΈΡ€
 
  • НС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² ΠΏΠΎ ΠΎΠ±Π΅ стороны ΠΎΡ‚ Π·Π½Π°ΠΊΠ° равСнства.
  • Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π½Π΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ строки.
    Π”Ρ€ΡƒΠ³ΠΎΠΉ синтаксис ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰ΠΈΠ΅ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ,
    Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ², содСрТащих ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹.

На Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΌΡƒ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с % , ΠΊΠ°ΠΊ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ синтаксисС.
Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Linux, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ $ Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ ${name} , % Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Π½Π° ΠΎΠ±ΠΎΠΈΡ…
стороны ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

 ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ s1=string1
ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ s2=%s1%
 

Если значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΌ, Π² частности, ΠΏΡ€ΠΈ использовании для Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈ слоТной Π»ΠΎΠ³ΠΈΠΊΠΈ,
Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ синтаксис, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΎΡΠΊΠ»ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π·Π½Π°ΠΊ вмСсто % .
По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ строк, Ρ‡Ρ‚ΠΎ являСтся ΠΏΠ΅Ρ€Π΅ΠΆΠΈΡ‚ΠΊΠΎΠΌ повСдСния.
ΠΈΠ· Ρ€Π°Π½Π½ΠΈΡ… вСрсий ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.
Однако это ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° для Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ слоТной Π»ΠΎΠ³ΠΈΠΊΠΈ.
Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΠΎΠ·ΠΆΠ΅ Π±Ρ‹Π» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ синтаксис setlocal .

 setlocal EnableDelayedExpansion
ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ s1=строка1
ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ s2=!s1!
 
  • Π‘ΠΌ. Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Microsoft setlocal
  • Π‘ΠΌ. Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ SETLOCAL Π½Π° сайтС ss64.com
  • Π‘ΠΌ. Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ EnableDelayedExpansion Π½Π° сайтС ss64.com

Π­Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΊΠΈ

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ логичСского управлСния ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π½Π΅ Ρ‚Π°ΠΊ просты Π² использовании, ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сцСнариСв Linux,
хотя с ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹.

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ управлСния состоит Π² использовании ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² goto с ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ.

  • Π‘ΠΌ. Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ goto
  • Π‘ΠΌ. Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ этикСткС .

НапримСр:

, Ссли "%x%"=="true" ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΌΠ΅Ρ‚ΠΊΠ΅
:someLabel
rem Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚...
 
  • НСсколько ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ΄ Π² Π²Π°ΠΆΠ½Ρ‹Ρ… логичСских Ρ‚ΠΎΡ‡ΠΊΠ°Ρ….
  • Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ просачиваниС Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π° этикСтки Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°,
    Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ 9ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ 0040 goto Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Ρ‡Π΅Ρ€Π΅Π· Π»ΠΎΠ³ΠΈΠΊΡƒ.
  • ПолСзно Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ стандартныС ΠΌΠ΅Ρ‚ΠΊΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ :exit0 для Π²Ρ‹Ρ…ΠΎΠ΄Π° с ΠΊΠΎΠ΄ΠΎΠΌ 0 ΠΈ :exit1 для Π²Ρ‹Ρ…ΠΎΠ΄Π° с ΠΊΠΎΠ΄ΠΎΠΌ 1 .
  • ΠœΠ΅Ρ‚ΠΊΠΈ

  • Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

ВстроСнныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ внСшниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π’Π΅Ρ€ΠΌΠΈΠ½Ρ‹ Β«ΠΊΠΎΠΌΠ°Π½Π΄Π°Β» ΠΈ Β«ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Β» ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ взаимозамСняСмо ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρƒ.
ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° cmd , которая Π½Π° самом Π΄Π΅Π»Π΅ являСтся исполняСмой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ с ΠΈΠΌΠ΅Π½Π΅ΠΌ cmd.exe , Π²Π΅Π΄Π΅Ρ‚ сСбя ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  • Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ встроСнныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, dir )
  • элСмСнты синтаксиса языка ΠΈΠ»ΠΈ Β«ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹Β» (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, , Ссли )
  • ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ внСшниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡƒΡ‚Π΅ΠΌ поиска PATH , Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠ°ΠΏΠΊΠΈ ΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ

НапримСр, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ if Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π°ΠΆΠ΅Π½ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ cmd , Ρ‡Ρ‚ΠΎ ΠΎΠ½ скомпилирован Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.
Π΄ΠΈΡ€ 9Команда 0041 являСтся Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ скомпилирована Π² ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ.
Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, запустив:

 > ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³
Β«ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉΒ» Π½Π΅ распознаСтся ΠΊΠ°ΠΊ внутрСнняя ΠΈΠ»ΠΈ внСшняя ΠΊΠΎΠΌΠ°Π½Π΄Π°,
Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»
 

Напротив, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° taskmgr являСтся внСшнСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ ΠΈ ΠΏΡ€ΠΈ запускС ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ДиспСтчСр Π·Π°Π΄Π°Ρ‡ .

 > ΠΊΠ°ΠΊΠΎΠΉ диспСтчСр Π·Π°Π΄Π°Ρ‡
C:\Windows\System32\Taskmgr.exe
 

ВстроСнныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ скомпилированы Π² cmd ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ внСшниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ находятся с использованиСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ срСды PATH .

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ exit выполняСт Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΡ€ΠΈ нСобходимости с цСлочислСнным ΠΊΠΎΠ΄ΠΎΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°.

  • Π‘ΠΌ. Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° exit

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

.

 @эхо Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ
Ρ€Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Ρ…ΠΎΠ΄Π°
rem НСмного логики
Ссли... условиС, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹... (
  rem ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² ΠΊΠΎΠ½Π΅Ρ† ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° с ΠΊΠΎΠ΄ΠΎΠΌ Π²Ρ‹Ρ…ΠΎΠ΄Π° 0
  ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Ρƒ0
)
rem Π‘ΠΎΠ»ΡŒΡˆΠ΅ Π»ΠΎΠ³ΠΈΠΊΠΈ здСсь
:Π²Ρ‹Ρ…ΠΎΠ΄0
rem Π’Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° с ΠΊΠΎΠ΄ΠΎΠΌ успСха
Π²Ρ‹Ρ…ΠΎΠ΄ / Π± 0
 
  • Π’Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ exit0 Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½ ΠΊΠ°ΠΊ функция с использованиСм call :exit0 , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·
    Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π½Π΅ выходя ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.
  • ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ /b ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для указания Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° cmd , Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ выполняСтся ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»
    Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ сам Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ if выполняСт ΡƒΡΠ»ΠΎΠ²Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ логичСскиС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π‘ΠΌ.:

  • Ссли докумСнтация

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ являСтся сравнСниС значСния строки с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ мСсту Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅.
Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ string1 ΠΈ string2 ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ строками. Π˜Ρ… Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.

 s1=string1 с ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ
s2=строка2
Ссли "%s1%"=="%s2%" ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΌΠ΅Ρ‚ΠΊΠ΅
:someLabel
Ρ€Π΅ΠΌ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°ΠΉ Π΅Ρ‰Π΅...
 
  • ΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹ Π½Π΅ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΏΠΎ ΠΎΠ±Π΅ стороны ΠΎΡ‚ условия == ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€.
  • Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пустой строкой, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π²
    ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ пустая строка Π½Π΅ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ синтаксичСской ошибки; Ссли сравниваСтся Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Π°Ρ строка
    Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. Π”Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΏΠΎ сущСству Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½Ρ‹Π΅ Π² сравнСнии , Ссли
    поэтому Π²ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ ΠΎΠ±Π΅ стороны сравнСния.

Одна строка if Команда, такая ΠΊΠ°ΠΊ Π²Ρ‹ΡˆΠ΅, допускаСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ.
Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ , Ссли ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки для создания многострочного логичСского Π±Π»ΠΎΠΊΠ°.
Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ условиС exists для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ сущСствования Ρ„Π°ΠΉΠ»Π°.

 имя_Ρ„Π°ΠΉΠ»Π°=C:\ΠΏΡƒΡ‚ΡŒ\ΠΊ\Ρ„Π°ΠΉΠ»Ρƒ
Ссли Π½Π΅ сущСствуСт "%fileName%" (
  эхо Π€Π°ΠΉΠ» Π½Π΅ сущСствуСт: %fileName%
  ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Ρƒ1
)
 
  • Π’Π°ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π» ΠΏΠ΅Ρ€Π΅Π΄ ( ΠΈ отсутствиС ΠΏΡ€ΠΎΠ±Π΅Π»Π° Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ
  • ΠΊΠΎΠΌΠ°Π½Π΄ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ° ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ отступ

Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ слоТной Π»ΠΎΠ³ΠΈΠΊΠΈ с использованиСм , Ссли , ΠΈ , ΠΈΠ½Π°Ρ‡Π΅ .
Однако Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ синтаксичСскиС ошибки.
НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:

.

, Ссли "%x%"=="1" (
  rem Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ логичСского Π±Π»ΠΎΠΊΠ° 1
) Π΅Ρ‰Π΅ (
    Ссли "%x%"=="2" (
      rem Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ логичСский Π±Π»ΠΎΠΊ 2
    )
  ) Π΅Ρ‰Π΅ (
       rem ПадСниС Ρ‡Π΅Ρ€Π΅Π· корпус
    )
 
  • синтаксис ΠΈΠ½Π°Ρ‡Π΅, Ссли нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ; вмСсто этого разбиваСтся Π½Π° Π΄Π²Π΅ строки с ) else ( Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС
    ΠΈ Ссли. .. ( Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС
  • , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΠ½Π°Ρ‡Π΅, Ссли поддСрТиваСтся синтаксис (ΠΈΠ»ΠΈ elseif ΠΈΠ»ΠΈ elif ),
    слоТныС Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ условия Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ большСго количСства Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ
  • ) else ( со скобками Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π° Ρ‚ΠΎΠΉ ΠΆΠ΅ строкС с ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ
  • ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько условий
  • командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ многострочныС , Ссли Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΊ ΠΎΠ΄Π½Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ; поэтому,
    ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ echo ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ нСсколько строк, Π° сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ
    Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ Π² Π±Π»ΠΎΠΊΠ΅, Π° Π½Π΅ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ строкС

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ for обСспСчиваСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ цикличСского просмотра списка.

  • Π‘ΠΌ. Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌ for

Из-Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ вмСсто .
творчСски Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Π΄Π°ΠΆΠ΅ Ссли это Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках.

ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ†ΠΈΠΊΠ»Π° для см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²Β».

ИспользованиС для Ρ†ΠΈΠΊΠ»ΠΎΠ² часто трСбуСтся использованиС SETLOCAL EnableDelayedExpansion ,
ΠΊΠ°ΠΊ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Π»ΠΎΡΡŒ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Variables , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… установлСны ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ выполняСтся поиск Ρ‚ΠΎΠ³ΠΎ, установлСно Π»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС QGIS Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Π² систСмС.
(ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‚Π°ΠΊ: C:\Program Files\QGIS 3.10 ),
Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ, отдавая ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ послСднСй вСрсии.

 для %%G Π² (3.12 3.10 3.4) ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ (
  rem УстановитС Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ понятным
  ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ qgisVersion=%%G
  Ссли сущСствуСт "%%G:\Program Files\QGIS !qgisVersion! (
    ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ targetQgisVersion=!qgisVersion!
    echo ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π° установка ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния QGIS вСрсии !targetQgisVersion!.
    ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ запускуStandaloneQgis
  )
)
 
  • Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ синтаксис ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ %%G ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ G .
  • ЗначСния для повторСния ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π² скобках.
  • ΠžΠΏΡ‹Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π», Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π² спискС простым ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ строки ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ ΠΈ Ρ‚. Π΄. Π²
    Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π·Π° строкой для .
  • ΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹ Π² Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… мСстах ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ синтаксис, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… с ΠΎΠΏΠΎΡ€ΠΎΠΉ Π½Π°
Π²Ρ‹Π·ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π°,
ΠΌΠ΅Ρ‚ΠΊΠ° ΠΈ
Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ .
Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΏΠΎ своСй ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ функциям Π² сцСнариях ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Linux ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… языках;
ΠΎΠ΄Π½Π°ΠΊΠΎ синтаксис отличаСтся.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ example-function.bat ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ функция ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅.

 @эхо Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ
rem ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
rem НазваниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ имя_сцСнария=%~nx0
rem Π€Π°ΠΉΠ» ΠΆΡƒΡ€Π½Π°Π»Π°
ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ logFile=%scriptName%.log
echo Π€Π°ΠΉΠ» ΠΆΡƒΡ€Π½Π°Π»Π° для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ %scriptName%>%logFile%
rem Π’Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ
call :logInfo КакоС-Ρ‚ΠΎ сообщСниС
call :logWarning "Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ сообщСниС"
ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Ρƒ0
:logInfo
rem Ѐункция для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ сообщСния Π² Π»ΠΎΠ³-Ρ„Π°ΠΉΠ»
rem - Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ глобальная пСрСмСнная logFile Π±Ρ‹Π»Π° установлСна ​​в Ρ„Π°ΠΉΠ»
rem - Π²Ρ‹Π²ΠΎΠ΄ всСгда добавляСтся, поэтому пСрСзапуститС Ρ„Π°ΠΉΠ» Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС
rem - Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ "Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ" ΠΈΠ»ΠΈ Π½Π΅Ρ‚
rem - Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ сообщСния всСгда Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ
Ρ€Π΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ сообщСниС
эхо-ИНЀОРМАЦИЯ: %* >> "%logFIle%"
rem Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ статус, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ†Π΅Π»Ρ‹ΠΌ числом, Π½Π΅ трСбуСтся, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΠΈ успСха. 
Π²Ρ‹Ρ…ΠΎΠ΄ / Π± 0
:logΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅
rem Ѐункция для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰Π΅Π³ΠΎ сообщСния Π² Ρ„Π°ΠΉΠ» ΠΆΡƒΡ€Π½Π°Π»Π°
rem - Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ глобальная пСрСмСнная logFile Π±Ρ‹Π»Π° установлСна ​​в Ρ„Π°ΠΉΠ»
rem - Π²Ρ‹Π²ΠΎΠ΄ всСгда добавляСтся, поэтому пСрСзапуститС Ρ„Π°ΠΉΠ» Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС
Ρ€Π΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ сообщСниС
echo ΠŸΠ Π•Π”Π£ΠŸΠ Π•Π–Π”Π•ΠΠ˜Π•: %* >> "%logFIle%"
rem Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ статус, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ†Π΅Π»Ρ‹ΠΌ числом, Π½Π΅ трСбуСтся, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΠΈ успСха.
Π²Ρ‹Ρ…ΠΎΠ΄ / Π± 0
:Π²Ρ‹Ρ…ΠΎΠ΄0
rem ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Π²Ρ‹Ρ…ΠΎΠ΄
Π²Ρ‹Ρ…ΠΎΠ΄ / Π± 0
 

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ запуска ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°:

 Π–ΡƒΡ€Π½Π°Π» для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ example-function.bat
ИНЀО: "НСкотороС сообщСниС"
Π’ΠΠ˜ΠœΠΠΠ˜Π•: "Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ сообщСниС"
 
  • Ѐункция объявлСна ​​с ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ .
  • Ѐункция вызываСтся с использованиСм синтаксиса call :label .
    • ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ послС синтаксиса call :label .
  • ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ функция Π±Ρ‹Π»Π° Π²Ρ‹Π·Π²Π°Π½Π° ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ».
  • Ѐункция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ цСлочислСнный ΠΊΠΎΠ΄ Π²Ρ‹Ρ…ΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ exit . Π’ этом случаС Π²Ρ‹Ρ…ΠΎΠ΄ Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Ρƒ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.

для | Microsoft Π£Π·Π½Π°ΠΉΡ‚Π΅

Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

Π’Π²ΠΈΡ‚Ρ‚Π΅Ρ€

LinkedIn

ЀСйсбук

ЭлСктронная ΠΏΠΎΡ‡Ρ‚Π°

  • Π‘Ρ‚Π°Ρ‚ΡŒΡ
  • 8 ΠΌΠΈΠ½ΡƒΡ‚ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅

ЗапускаСт ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² Π½Π°Π±ΠΎΡ€Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ².

Бинтаксис

 для {%% | %} in () do  []
 

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ОписаниС
{%% \| %}<пСрСмСнная> ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ замСняСмый ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ Π·Π½Π°ΠΊ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π° ( % ), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ вмСсто Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π·Π½Π°ΠΊΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π° ( %% ) для выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ вмСсто Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ рСгистру ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ прСдставлСны Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌ порядкС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 9.0076 %a , %b ΠΈΠ»ΠΈ %c .
( <Π½Π°Π±ΠΎΡ€> ) ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΈΠ»ΠΈ тСкстовых строк ΠΈΠ»ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… выполняСтся ΠΊΠΎΠΌΠ°Π½Π΄Π°. Π‘ΠΊΠΎΠ±ΠΊΠΈ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹.
<ΠΊΠΎΠΌΠ°Π½Π΄Π°> ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈΠ»ΠΈ тСкстовой строки ΠΈΠ»ΠΈ для Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π² Π½Π°Π±ΠΎΡ€ .
<ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки> Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π»ΡŽΠ±Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ.
/? ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ справку Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС.
  • Π­Ρ‚Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΈΠ»ΠΈ нСпосрСдствСнно ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

  • К ΠΊΠΎΠΌΠ°Π½Π΄Π΅ для ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹:

    • Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° замСняСт % пСрСмСнная ΠΈΠ»ΠΈ %% пСрСмСнная с ΠΊΠ°ΠΆΠ΄ΠΎΠΉ тСкстовой строкой Π² ​​указанном Π½Π°Π±ΠΎΡ€Π΅, ΠΏΠΎΠΊΠ° указанная ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ всС Ρ„Π°ΠΉΠ»Ρ‹.

    • ИмСна ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ рСгистру, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, ΠΈ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 52 ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

    • Π’ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΏΠ°Ρ€Ρ‚ΠΈΠΈ, ΠΎΡ‚ %0 Π΄ΠΎ %9 , Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любой символ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ , ΠΊΡ€ΠΎΠΌΠ΅ Ρ†ΠΈΡ„Ρ€ ΠΎΡ‚ 0 Π΄ΠΎ 9 . Для простых ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΎΠ΄ΠΈΠ½ символ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ %%f Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

    • МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² слоТных ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ замСняСмыС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

  • ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ set ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ Π³Ρ€ΡƒΠΏΠΏΡƒ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ нСсколько Π³Ρ€ΡƒΠΏΠΏ Ρ„Π°ΠΉΠ»ΠΎΠ². Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ подстановочныС Π·Π½Π°ΠΊΠΈ ( * ΠΈ ? ) для указания Π½Π°Π±ΠΎΡ€Π° Ρ„Π°ΠΉΠ»ΠΎΠ². Допустимы ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π½Π°Π±ΠΎΡ€Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ²:

     (*.doc)
    (*.doc *.txt *.me)
    (янв*.Π΄ΠΎΠΊ янв*.Ρ€ΠΏΡ‚ Ρ„Π΅Π²*.Π΄ΠΎΠΊ Ρ„Π΅Π²*.Ρ€ΠΏΡ‚)
    (Π°Ρ€??1991.* Π°ΠΏ??1991.*)
     
  • ΠŸΡ€ΠΈ использовании этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π½Π°Π±ΠΎΡ€Π΅ замСняСт % ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ %% ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ , Π° Π·Π°Ρ‚Π΅ΠΌ указанная ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ продолТаСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ всС Ρ„Π°ΠΉΠ»Ρ‹ (ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ Ρ„Π°ΠΉΠ»ΠΎΠ²), ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ set .

  • Π’ ΠΈ do Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, Π½ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… с этой ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ. Если Π²Ρ‹ пропуститС любоС ΠΈΠ· этих ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов, появится сообщСниС ΠΎΠ± ошибкС.

  • Если Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ), ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ для :

    • Волько ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ: Если Π½Π°Π±ΠΎΡ€ содСрТит подстановочныС Π·Π½Π°ΠΊΠΈ ( * ΠΈΠ»ΠΈ ? ), указанная ΠΊΠΎΠΌΠ°Π½Π΄Π° выполняСтся для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° (вмСсто Π½Π°Π±ΠΎΡ€Π° Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ соотвСтствуСт Π½Π°Π±ΠΎΡ€Ρƒ . . Бинтаксис:

       для /d {%%|%} в () do  []
       
    • РСкурсивный: ΠžΠ±Ρ…ΠΎΠ΄ΠΈΡ‚ Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΊΠΎΡ€Π½Π΅ΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся диск : ΠΏΡƒΡ‚ΡŒ , ΠΈ выполняСт ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ for Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Π΄Π΅Ρ€Π΅Π²Π°. Если послС /r ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, Π² качСствС ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. Если set β€” это всСго лишь ΠΎΠ΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° (.), ΠΎΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ пСрСчисляСт Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². Бинтаксис:

       для /r [[<диск>:]<ΠΏΡƒΡ‚ΡŒ>] {%%|%}<пСрСмСнная> Π² (<Π½Π°Π±ΠΎΡ€>) ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ <ΠΊΠΎΠΌΠ°Π½Π΄Π°> [<ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Π΅ строки>]
       
    • Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ( start #), Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Ρ‡Π΅Ρ€Π΅Π· Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΏΠΎΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ прСвысит установлСнноС ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ( end #). /l Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ, сравнивая start # с end #. Если start # мСньшС end #, ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π°. Когда итСративная пСрСмСнная ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ end #, командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π°. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ минус step # для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Ρ‡Π΅Ρ€Π΅Π· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π² порядкС убывания Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. НапримСр, (1,1,5) Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ 1 2 3 4 5, Π° (5,-1,1) Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ 5 4 3 2 1. Бинтаксис:

       для /l {%%|%}<пСрСмСнная> in (,,) do  []
       
    • Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ ΠΈ синтаксичСский Π°Π½Π°Π»ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ²: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ синтаксичСский Π°Π½Π°Π»ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, строк ΠΈ содСрТимого Ρ„Π°ΠΉΠ»Π°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ содСрТимоС ΠΈΠ»ΠΈ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ parsingkeywords Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² для дальнСйшСго измСнСния синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ‚ΠΎΠΊΠ΅Π½Π° parsingkeywords , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ слСдуСт ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π² качСствС ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈ использовании Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Ρ‚ΠΎΠΊΠ΅Π½Π° /f Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ‚ΠΎΠΊΠ΅Π½.

      Анализ Ρ„Π°ΠΉΠ»Π° состоит ΠΈΠ· чтСния Π²Ρ‹Π²ΠΎΠ΄Π°, строки ΠΈΠ»ΠΈ содСрТимого Ρ„Π°ΠΉΠ»Π°, Π° Π·Π°Ρ‚Π΅ΠΌ разбиСния Π΅Π³ΠΎ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ строки тСкста ΠΈ Ρ€Π°Π·Π±ΠΎΡ€Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки Π½Π° ноль ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ². Π—Π°Ρ‚Π΅ΠΌ вызываСтся Ρ†ΠΈΠΊΠ» для со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, установлСнным Π² Ρ‚ΠΎΠΊΠ΅Π½. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ /f ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ‚ΠΎΠΊΠ΅Π½, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ, ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. ΠŸΡƒΡΡ‚Ρ‹Π΅ строки ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ.

      Бинтаксисы:

       для /f [] {%%|%}<пСрСмСнная> in () do  []
      for /f [] {%%|%} in () do  []
      for /f [] {%%|%} in ('') do  []
       

      АргумСнт set ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ нСсколько ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ². ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ» открываСтся, читаСтся ΠΈ обрабатываСтся ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠΌ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ Π² Π½Π°Π±ΠΎΡ€Π΅ . Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° . Π­Ρ‚ΠΎ строка Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ…, которая содСрТит ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ нСсколько ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов для указания Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°.

      Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ usebackq , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… синтаксисов:

       для /f [usebackq ] {%%|%} in () do  []
      for /f [usebackq ] {%%|%} in ('') do  []
      for /f [usebackq ] {%%|%} in (``) do  []
       

      Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ пСрСчислСны ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° .

      ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово ОписаниС
      эол= <с> Π—Π°Π΄Π°Π΅Ρ‚ символ ΠΊΠΎΠ½Ρ†Π° строки (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ символ).
      ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ= Π—Π°Π΄Π°Π΅Ρ‚ количСство пропускаСмых строк Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ„Π°ΠΉΠ»Π°.
      Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ= Π—Π°Π΄Π°Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ. Π­Ρ‚ΠΎ замСняСт Π½Π°Π±ΠΎΡ€ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, состоящий ΠΈΠ· ΠΏΡ€ΠΎΠ±Π΅Π»Π° ΠΈ табуляции.
      Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ²= Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π² Ρ†ΠΈΠΊΠ» для для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. m-n Π·Π°Π΄Π°Π΅Ρ‚ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ‚ m th Π΄ΠΎ n th Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ². Если послСдним символом Π² строкС tokens= являСтся Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠ° ( * ), выдСляСтся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ пСрСмСнная, ΠΈ ΠΎΠ½Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΡΡ‚Π°Π²ΡˆΠΈΠΉΡΡ тСкст Π² строкС послС послСднСй Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ лСксСмы.
      использованиСбэкк Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ строку Π² ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ… ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ строку Π² ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ… Π² качСствС Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎΠΉ строки ΠΈΠ»ΠΈ, для Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ², содСрТащих ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² Π² , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· Π½ΠΈΡ… Π±Ρ‹Π»ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ -ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.
    • Π—Π°ΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ: Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ синтаксис (для любой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ I ):

      ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ с ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ ОписаниС
      %~I РаскрываСт %I , удаляя всС ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰ΠΈΠ΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.
      %~fI ЗамСняСт %I Π½Π° ΠΏΠΎΠ»Π½ΠΎΠ΅ имя ΠΏΡƒΡ‚ΠΈ.
      %~dI Π Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ %I Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π±ΡƒΠΊΠ²Ρƒ диска.
      %~ΠΏΠΈ Π Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ %I Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎ ΠΏΡƒΡ‚ΠΈ.
      %~nI Π Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ %I Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°.
      %~xI Π Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ %I Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°.
      %~sI ΠŸΡƒΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π°.
      %~aI РаскрываСт %I Π΄ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Ρ„Π°ΠΉΠ»Π° Ρ„Π°ΠΉΠ»Π°.
      %~tI РаскрываСт %I Π΄ΠΎ Π΄Π°Ρ‚Ρ‹ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°.
      %~zI Π Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ %I Π΄ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ„Π°ΠΉΠ»Π°.
      %~$ПУВЬ:I Π˜Ρ‰Π΅Ρ‚ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, пСрСчислСнныС Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ срСды PATH, ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ %I Π΄ΠΎ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. Если имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ срСды Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ» Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ поиском, этот ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ замСняСтся пустой строкой.

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

      ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ с ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ ОписаниС
      %~dpi Π Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ %I Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎ Π±ΡƒΠΊΠ²Ρ‹ диска ΠΈ ΠΏΡƒΡ‚ΠΈ.
      %~nxI Π Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ %I Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ.
      %~fsI Π Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ %I Π΄ΠΎ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡƒΡ‚ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ.
      %~dp$PATH:I Π˜Ρ‰Π΅Ρ‚ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ…, пСрСчислСнных Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ срСды PATH, %I ΠΈ замСняСтся Π½Π° Π±ΡƒΠΊΠ²Ρƒ диска ΠΈ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΌΡƒ.
      %~ftzaI Π Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ %I Π΄ΠΎ строки Π²Ρ‹Π²ΠΎΠ΄Π°, ΠΏΠΎΡ…ΠΎΠΆΠ΅ΠΉ Π½Π° dir .

      Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π²Ρ‹ΡˆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ %I ΠΈ PATH с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ допустимыми значСниями. ДопустимоС имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ вмСсто Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ синтаксис %~ .

      Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ рСгистрС, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ %I , Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ свой ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹ с ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ рСгистру.

  • Π Π°Π·Π±ΠΎΡ€ строки: Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ for /f Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ€Π°Π·Π±ΠΎΡ€Π° нСпосрСдствСнной строки, Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΠ² Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ( 9 ) ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ символы.

  • Анализ Π²Ρ‹Π²ΠΎΠ΄Π°: Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ for /f для Π°Π½Π°Π»ΠΈΠ·Π° Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, помСстив <ΠΊΠΎΠΌΠ°Π½Π΄Π°> Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ скобками. Он рассматриваСтся ΠΊΠ°ΠΊ командная строка, которая пСрСдаСтся Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΌΡƒ Cmd.exe. Π’Ρ‹Π²ΠΎΠ΄ записываСтся Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ анализируСтся, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ это Π±Ρ‹Π» Ρ„Π°ΠΉΠ».

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вмСсто Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис:

 для {%%|%}<пСрСмСнная> Π² () do  []
 

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ содСрТимоС всСх Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .doc ΠΈΠ»ΠΈ .txt, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ %f , Π²Π²Π΅Π΄ΠΈΡ‚Π΅:

 для %f Π² (*. doc *.txt) do Π²Π²Π΅Π΄ΠΈΡ‚Π΅ %f
 

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .doc ΠΈΠ»ΠΈ .txt Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ замСняСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ %f Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΎ содСрТимоС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ %f с %%f . Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС пСрСмСнная игнорируСтся ΠΈ отобраТаСтся сообщСниС ΠΎΠ± ошибкС.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ», игнорируя Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ строки, Π²Π²Π΅Π΄ΠΈΡ‚Π΅:

 для /feol=; tokens=2,3* delims=, %i в (myfile.txt) do @echo %i %j %k
 

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ строку Π² myfile.txt . Он ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ строки, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с Ρ‚ΠΎΡ‡ΠΊΠΈ с запятой, ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ Ρ‚ΠΎΠΊΠ΅Π½ ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки Π² Ρ‚Π΅Π»ΠΎ для (Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ запятыми ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ). Π’Π΅Π»ΠΎ 9.0076 для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ссылаСтся Π½Π° %i для получСния Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π°, %j для получСния Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° ΠΈ %k для получСния всСх ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ².