【问题标题】:How to get an EC2 Windows machine's instance-id into a batch variable如何将 EC2 Windows 机器的实例 ID 获取到批处理变量中
【发布时间】:2010-10-30 15:44:36
【问题描述】:

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

来自Amazon's Documentation on the subject,我看到您应该向指定的 URL 发出 WGET 并解析响应。因此,表达这个问题的另一种方式可能是“如何将 HTTP 请求的内容作为 Windows 批处理文件中的参数传递给程序”

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

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

对我如何进行有什么建议吗?

【问题讨论】:

    标签: windows batch-file amazon-ec2


    【解决方案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。

    【讨论】:

    • 这是有道理的。所以 wget>file.txt,然后设置 /p name=
    • 你不能只管 wget 的输出。但是 wget 会使用 -O 选项将它得到的内容写入文件,所以你应该使用 wget -O file.txt http://...
    猜你喜欢
    • 1970-01-01
    • 2017-05-30
    • 2010-10-12
    • 2015-05-13
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-04
    相关资源
    最近更新 更多