コマンドプロンプト/setlocalとendlocalの動作説明
の編集
Top
/
コマンドプロンプト
/
setlocalとendlocalの動作説明
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
#navi(../) * setlocalとendlocalの動作説明 [#ne261a47] バッチファイルで使用される、setlocalやendlocalの説明を以下に記します。 #contents #htmlinsertpcsp(win-top.html,win-sp.html) * setlocal, endlocal なし [#x49fb869] 以下のバッチファイルを作成し、コマンドプロンプトから起動します。 #ref(nonlocal.bat) @echo off set A=sakura set B=tsubaki set C=suzuran 上記のバッチファイルを起動してみます。~ 起動後、変数A,B,Cがどうようになっているか確認します。 C:\sakura>echo %A% %B% %C% %A% %B% %C% C:\sakura>nonlocal.bat C:\sakura>echo %A% %B% %C% sakura tsubaki suzuran 上記の通り、バッチファイルを起動した後も、変数にセットした値が有効になっています。 * setlocalのみ設定 [#uffc13f4] 以下のようなバッチファイルを作成し実行してみます。 #ref(setlocal.bat) @echo off setlocal set A=sakura set B=tsubaki set C=suzuran echo %A% %B% %C% 上記のバッチファイルを起動してみます。~ 起動後、変数A,B,Cがどうようになっているか確認します。 C:\sakura>setlocal.bat sakura tsubaki suzuran C:\sakura>echo %A% %B% %C% %A% %B% %C% バッチファイル内のみ変数が有効であるのが確認できます。~ 今回は、endlocalを最後に記述しませんでしたが、バッチファイルを作成するにあたっては、記入したほうがよいでしょう。 * setlocal & endlocal [#b59ebfd8] 以下のようなバッチファイルを作成し実行してみます。 #ref(setendlocal.bat) @echo off setlocal set A=sakura set B=tsubaki set C=suzuran echo %A% %B% %C% endlocal set D=tanpopo 上記のバッチファイルを起動してみます。~ 起動後、変数A,B,Cがどうようになっているか確認します。 C:\sakura>setendlocal.bat sakura tsubaki suzuran C:\sakura>echo %A% %B% %C% %D% %A% %B% %C% tanpopo * setlocal & endlocal の使用例 [#f15ff5fb] 以下のように呼び出し元 callbat.bat と呼び出し先の arg.bat を用意しました。 #ref(callbat.bat) @echo off setlocal set A=sakura set B=tsubaki set C=suzuran call arg.bat %A% %B% %C% endlocal call arg.bat %A% %B% %C% #ref(arg.bat) @echo off echo Running arg.bat echo %A% %B% %C% callbat.batからarg.batが2度呼びだされます。~ 1つ名はsetlocalとendlocalのスコープ内、もう一つは最後のendlocal後になります。~ 実際に実行してみます。 C:\sakura>callbat.bat Running arg.bat sakura tsubaki suzuran Running arg.bat ECHO は <OFF> です。 1回目のarg.batの呼び出しは設定した変数が表示されます。~ 2回目は変数が空なので、echoのみが呼び出され、ECHO は <OFF> です。と表示されているのがわかります。~ つまり、setlocal, endlocalを指定すればその間で有効な変数として使用できることが可能です。 以上、setlocal, endlocalの使用方法でした。 #htmlinsertpcsp(win-btm.html,win-sp.html)
タイムスタンプを変更しない
#navi(../) * setlocalとendlocalの動作説明 [#ne261a47] バッチファイルで使用される、setlocalやendlocalの説明を以下に記します。 #contents #htmlinsertpcsp(win-top.html,win-sp.html) * setlocal, endlocal なし [#x49fb869] 以下のバッチファイルを作成し、コマンドプロンプトから起動します。 #ref(nonlocal.bat) @echo off set A=sakura set B=tsubaki set C=suzuran 上記のバッチファイルを起動してみます。~ 起動後、変数A,B,Cがどうようになっているか確認します。 C:\sakura>echo %A% %B% %C% %A% %B% %C% C:\sakura>nonlocal.bat C:\sakura>echo %A% %B% %C% sakura tsubaki suzuran 上記の通り、バッチファイルを起動した後も、変数にセットした値が有効になっています。 * setlocalのみ設定 [#uffc13f4] 以下のようなバッチファイルを作成し実行してみます。 #ref(setlocal.bat) @echo off setlocal set A=sakura set B=tsubaki set C=suzuran echo %A% %B% %C% 上記のバッチファイルを起動してみます。~ 起動後、変数A,B,Cがどうようになっているか確認します。 C:\sakura>setlocal.bat sakura tsubaki suzuran C:\sakura>echo %A% %B% %C% %A% %B% %C% バッチファイル内のみ変数が有効であるのが確認できます。~ 今回は、endlocalを最後に記述しませんでしたが、バッチファイルを作成するにあたっては、記入したほうがよいでしょう。 * setlocal & endlocal [#b59ebfd8] 以下のようなバッチファイルを作成し実行してみます。 #ref(setendlocal.bat) @echo off setlocal set A=sakura set B=tsubaki set C=suzuran echo %A% %B% %C% endlocal set D=tanpopo 上記のバッチファイルを起動してみます。~ 起動後、変数A,B,Cがどうようになっているか確認します。 C:\sakura>setendlocal.bat sakura tsubaki suzuran C:\sakura>echo %A% %B% %C% %D% %A% %B% %C% tanpopo * setlocal & endlocal の使用例 [#f15ff5fb] 以下のように呼び出し元 callbat.bat と呼び出し先の arg.bat を用意しました。 #ref(callbat.bat) @echo off setlocal set A=sakura set B=tsubaki set C=suzuran call arg.bat %A% %B% %C% endlocal call arg.bat %A% %B% %C% #ref(arg.bat) @echo off echo Running arg.bat echo %A% %B% %C% callbat.batからarg.batが2度呼びだされます。~ 1つ名はsetlocalとendlocalのスコープ内、もう一つは最後のendlocal後になります。~ 実際に実行してみます。 C:\sakura>callbat.bat Running arg.bat sakura tsubaki suzuran Running arg.bat ECHO は <OFF> です。 1回目のarg.batの呼び出しは設定した変数が表示されます。~ 2回目は変数が空なので、echoのみが呼び出され、ECHO は <OFF> です。と表示されているのがわかります。~ つまり、setlocal, endlocalを指定すればその間で有効な変数として使用できることが可能です。 以上、setlocal, endlocalの使用方法でした。 #htmlinsertpcsp(win-btm.html,win-sp.html)
テキスト整形のルールを表示する
添付ファイル:
callbat.bat
453件
[
詳細
]
setendlocal.bat
511件
[
詳細
]
nonlocal.bat
587件
[
詳細
]
arg.bat
456件
[
詳細
]
setlocal.bat
485件
[
詳細
]