0

我有一个希望在 EC2 Windows AMI 启动时运行的批处理文件。我想从该批处理文件运行的程序将 EC2 机器的实例 ID 作为参数。将实例 ID 作为参数传递给该程序的最简单方法是什么?

亚马逊关于该主题的文档中,我看到您应该向指定的 URL 发出 WGET 并解析响应。因此,表达这个问题的另一种方式可能是“如何将 HTTP 请求的内容作为 Windows 批处理文件中的参数传递给程序”

在伪代码中,这是我想做的:

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

关于我如何进行的任何建议?

4

1 回答 1

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

这将设置%ID%为该 URL 处的服务器响应 [假设程序执行我命名的操作])。

不过,在这两种情况下,您都需要一个单独的程序来使用 HTTP。

于 2009-06-02T18:28:59.470 回答