【ハウツー】
プログラミング経験のある方であれば、変数は単項式であるという解釈が一般的だと思いますが、バッチ処理のおける環境変数の参照は、純粋にコマンド実行時レベルのテキスト展開にすぎません。よって、環境変数そのものに、実行するべきコマンドを保存し、環境変数を参照してコマンドを実行するといったことも可能です。
@echo off
set PARAM=Kitty on your lap
set COMMAND=echo %PARAM%
%COMMAND%
pause
![]() |
サンプル07の実行結果 |
サンプル07は、事前に用意された環境変数COMMANDを展開して、その結果をコマンドとして実行しています。COMMAND変数にはechoコマンドを表す文字列が保存されていますが、パラメータからさらに%PARAM%変数が参照されます。このバッチファイルを実行すると、正しくCOMMAND変数の文字列がコマンドとして実行されていることが確認できます。
このような性質を利用すれば、ある種のメタプログラミングのような、バッチ処理をバッチファイルで動的に生成するといったことが可能です。しかし、バッチファイルの本来の目的を考えれば、どのようなコマンドが実行されるか分からないような、複雑に参照し合う処理は避けるべきでしょう。
参考文献
[Microsoft TechNet コマンド ライン リファレンス]
| ゼロからはじめるバッチプログラミング - 装飾編 [2008/9/17] |
| ゼロからはじめるバッチプログラミング - コマンドの魅力を再確認 [2008/8/19] |
| 【レポート】マカフィーの世界の専門家の意識調査「サイバー防衛報告書」とセキュリティソリューション [21:15 5/25] |
| アップル、Aperture 3.2.4を公開 - バグ修正、安定性向上など [20:51 5/25] |
| 【レポート】GTC 2012 - VGXでエンタープライズ環境でのGPU需要開拓を狙うNVIDIA [20:07 5/25] |
| デル、期間限定キャンペーンに特価アイテム追加、アップグレード無料も継続 [19:41 5/25] |
| 上海問屋、iPhoneとほぼ同じ薄さのバッテリ内蔵ヘッドホンアンプ [19:05 5/25] |
|
エヴァンゲリオンレーシング、今年も鈴鹿8耐出場! 1,000人分の応援席も [00:30 5/27] ライフ |
|
「ガンスリ」10周年で大王付録にヘンリエッタフィギュア [22:22 5/26] ホビー |
|
【特集】クライマックス突入記念! 『Fate/Zero』の舞台裏に迫る!! [22:00 5/26] ホビー |
|
竹宮ゆゆこ×カスカベアキラ「エバーグリーン」1巻刊行 [21:59 5/26] ホビー |
|
最もセクシーな男性「メン・オン・ファイア」21人をAARP誌が発表 [21:30 5/26] エンタメ |