2009-06-02 10 views
0

EC2 Windows AMIの起動時に実行したいバッチファイルがあります。そのバッチファイルから実行したいプログラムは、EC2マシンのインスタンスIDをパラメータとして取ります。そのインスタンスIDをそのプログラムの引数として渡す最も簡単な方法は何ですか?EC2 Windowsマシンのinstance-idをバッチ変数に取得する方法

Amazon's Documentation on the subjectから、指定したURLにWGETを発行し、応答を解析するはずです。したがって、この質問を表現するもう1つの方法は、「Windowsバッチファイルの引数としてプログラムにHTTPリクエストの内容を渡すにはどうすればよいですか」

擬似コードでは、これを実行します。

set ID = GET http://169.254.169.254/2008-08-08/meta-data/instance-id 
myprogram.exe /instanceID=%ID% 

私が進むかもしれない方法上の任意の提案?

答えて

1

URLをバッチファイルで直接開くことはできません。確かにwgetなどを使ってそのURLの内容を取得することができます。そして、あなたは(その内容は、あなたが環境変数に割り当てることができる[例えば、Set= log.txt in batchを参照])ファイルを取得するいずれか、またはあなたが

設定します
for /f "usebackq delims=" %%x in (`print_contents_of_url http://169.254.169.254/2008-08-08/meta-data/instance-id`) do set ID=%%x 

にそれをラップすることができ、その場合、プログラムからの出力が得られます[そのプログラムが私がそれを命名したものと仮定して]そのURLのサーバーの応答に%ID%)。

どちらの場合でも、HTTPを話すには別のプログラムが必要です。

+0

これは意味があります。だからwget> file.txt、次に/ pの名前=

+0

wgetの出力をパイプすることはできません。しかし、wgetは-Oオプションを使ってファイルに書き込むので、wget -O file.txt http://を使うべきです。 – Joey

関連する問題