[前の記事]« バッチファイルがループしてしまう
[次の記事]日付と時刻を基にしたファイル名の自動作成方法 »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「バッチファイルの起動、引数の取得」索引へ

複数の環境変数を実行ファイルの引数として使用する方法

931.
複数の環境変数を実行ファイルの引数として使用する方法
2006年01月13日(金) 16時54分
HMS
●DOS/Windowsのバージョン↓
Win2000

はじめまして

別のバッチファイルでSETした複数の環境変数を変数名込みで
実行ファイルの引数として使用したいのですが、
何か良い方法はありますでしょうか?

以下のような物を想定しています。

[set_param.bat]
set a=aaa
set b=bbb
set c=ccc
...
set x=xxx

[run_program.bat]
call set_param
hoge.exe -Pa=aaa -Pb=bbb -Pc=ccc ... -Px=xxx

・引数となる環境変数の前に"-P"が付与
・引数には変数名も含む
・他でsetされている環境変数はできるだけ引数として渡したくない(必須ではないです)

こういった場合、set_paramをCALLするよりも、set_param.batを読み込んで
"set "と記述されている行を処理した方がいいのでしょうか?
935.
Re:複数の環境変数を実行ファイルの引数として使用する方法
2006年01月13日(金) 18時44分
otn
>●DOS/Windowsのバージョン↓
>Win2000
>
>はじめまして
>
>別のバッチファイルでSETした複数の環境変数を変数名込みで
>実行ファイルの引数として使用したいのですが、
>何か良い方法はありますでしょうか?
>
>以下のような物を想定しています。
>
>[set_param.bat]
>set a=aaa
>set b=bbb
>set c=ccc
>...
>set x=xxx
>
>[run_program.bat]
>call set_param
>hoge.exe -Pa=aaa -Pb=bbb -Pc=ccc ... -Px=xxx
>
>・引数となる環境変数の前に"-P"が付与
>・引数には変数名も含む
>・他でsetされている環境変数はできるだけ引数として渡したくない(必須ではないです)

set コマンドで環境変数の名前と値を得ることが出来るので、これを使えば出来ますが、全環境変数のうち必要なものだけを抜き出す基準があるかどうか。

>こういった場合、set_paramをCALLするよりも、set_param.batを読み込んで
>"set "と記述されている行を処理した方がいいのでしょうか?

そのほうが良いと思います。

set P=
for /f "tokens=1,2" %%A in (set_param.bat) do if/i "%%A"=="set" call :sub "%%B"
echo hoge.exe %P% >tmp.bat
call tmp.bat
del tmp.bat
....
goto :eof
:sub
set P=%P% -P%~1
goto :eof
939.
Re:複数の環境変数を実行ファイルの引数として使用する方法
2006年01月16日(月) 10時00分
HMS
本当にありがとうございます!
見事に解決しました。
940.
Re:複数の環境変数を実行ファイルの引数として使用する方法
2006年01月16日(月) 16時06分
otn
otn です。

>本当にありがとうございます!
>見事に解決しました。

よく考えたら(考えなくても)、一時ファイル(tmp.bat)は要りませんね。
コマンドラインを動的に作るということで頭が固まっていました。鏡開きしなきゃ。


set P=
for /f "tokens=1,2" %%A in (set_param.bat) do if/i "%%A"=="set" call :sub "%%B"
hoge.exe %P%
....
goto :eof
:sub
set P=%P% -P%~1
goto :eof
 
 


カテゴリー「バッチファイルの起動、引数の取得」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2006年01月13日 14:48に投稿されたエントリーのページです。

ひとつ前の投稿は「バッチファイルがループしてしまう」です。

次の投稿は「日付と時刻を基にしたファイル名の自動作成方法」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート