この記事では主に以下の機能を紹介します。
- 文字列変数を定義する
- 整数変数を定義する
- このコマンドのエコーを出力しません
- 遅延変数を設定する
- ストリングカット
- ループ処理
- 判断があれば
- スクリプトを実行する
- 異常な出口プログラム
デモンストレーションの例:
rem で始まる rem は、この行がコメントであることを示します
rem @echo off は、このコマンドの実行後にすべてのコマンド (コマンド自体を含む) のエコーをオフにすることを意味します。
@エコーオフ
rem は文字列変数を定義します
set GRAPHICS_CARD_TYPE=王哲、連夢、霍仙
rem 文字列変数を出力します
エコー 'GRAPHICS_CARD_TYPE:'%GRAPHICS_CARD_TYPE%
rem はローカルを遅延拡張に設定します。実際には、遅延変数です。
setlocal enlayedexpansion
set string=%GRAPHICS_CARD_TYPE%
rem:split はカスタム ループ本体を示し、分割ループの開始を示します。
rem tokens=1、* は文字列が切り取られた後の最初の要素 1 とそれ以外を示します、delims= は文字列が分割されることを示します、
rem %%i はループ後に取得される最初の要素を表します。変数は二重引用符と左右のパーセント記号で表す必要があります。
:split
for /f "tokens=1,* delims=," %%i in ("%string%") do (
echo %%i
set string=%%j
rem は整数変数を定義します
set /a count=0
set /a maxnum=5
rem: ループはカスタム ループ本体を表し、ループの開始を示します。 ループ
: ループ
rem は、埋め込みバット スクリプト
呼び出し 1_git_clone.bat を実行します。
rem %errorlevel% は上記コマンドの実行結果を表します。実行例外が 0 を返す場合 if
%errorlevel% neq 0 (
echo %errorlevel%
set /a count=%count%+1
echo %count%
rem 変数は、二重引用符と左右のパーセント記号で表す必要があります。
rem LEQ 表示は
if "%count%" より小さい LEQ "%maxnum%" (
echo %count%
echo エラーが発生しました。再試行回数 %count%。
rem はスリープ待ち時間を設定します
TIMEOUT /T 30
rem ループの先頭に戻ります body
goto ループ
) else (
echo 最大再試行回数を超えました。
rem exit はプログラムを異常終了することを意味します
exit /b %errorlevel%
)
)
echo %%i
)
"%string%"=="" でない場合 ( rem は
分割ループ本体の先頭で
goto splitを返します
)