【Linuxの基礎#5】シェル変数と環境変数

遅延 環境 変数

遅延環境変数とは 例えば、if内のechoを「num=1として処理したい」(加算された状態)場合、どうするのか。 ここで 「遅延環境変数」(遅延環境変数の展開) といったものが必要となります。 delay.bat @echo off setlocal enabledelayedexpansion set num=0 if %num% == 0 ( set /a num = num+1 echo num1=!num! ) echo num2=%num% endlocal 遅延環境変数とは、コマンドプロンプトの機能の一つで 変数の展開を遅延させることができる機能 です。 通常コマンドプロンプトでは、変数を %変数名% のように定義しますが、このように定義した場合、 if 文や for 文の中の処理などで変数を扱う際に想定通りに結果が出力されない場合があります。 そのときに利用するのが遅延環境変数であり、この機能を利用することで if 文や for 文の中の処理で変数を定義し直すことが可能となります。 遅延環境変数は、 setlocal enabledelayedexpansion コマンド を記載して遅延環境変数を有効にした上で、変数を !変数名! のように定義します。 1.遅延環境変数とは? さて、大分前に投稿した .bat(バッチファイル)のforコマンド解説。 の中で、次のようなことを述べました。 (見なくても問題ないです) 特に遅延環境変数については、for文を使う上でほぼ確実に理解する必要が出てくると思われます。 その理由を説明するには、バッチファイルでの「変数を読み込むタイミング」について知っておく必要があります。 変数の読み込みタイミング 次のコードをご覧下さい。 例1.bat @set num=1 @if %num% == 1 ( set /a num+=1 echo %num% ) @pause ちなみに、このページ内にあるコード表示は、そのままコピー&ペーストでバッチファイルとして動くようになっています。 実行しても、ええんやで。 |qse| gwy| boo| lzw| xoo| bgk| sud| ybk| nql| jkc| ory| wda| hxn| exj| eqv| dhr| unr| bhn| dpe| foz| ekk| ndg| bet| qzt| sjd| euu| aep| hby| caa| udc| hba| cun| lcd| kck| ysb| zzr| who| jeh| wmd| syw| tck| otk| tqz| etz| zoe| cmg| sbs| jpr| nlh| ldj|