BATCH文件:动态变量取决于参数

时间:2014-11-19 15:56:23

标签: windows batch-file

我有一个简单的批处理文件

@echo off
set a1=application 1
set a2=application 2
set a3=application 3

set app = %%1%
ECHO %app%

我想要实现的是当我使用参数调用我的批处理文件(test.bat)时,它会回显所需的字符串

所以,如果我打电话: 测试a1 - >申请1 测试a3 - >申请3

免责声明:这是一个简化的例子。

2 个答案:

答案 0 :(得分:2)

CALL set app=%%%1%%

请注意,批处理对each =侧的空格很敏感。您试图设置名为app Space

的变量

答案 1 :(得分:2)

@echo off
set a1=application 1
set a2=application 2
set a3=application 3
CALL SET app=%%%1%%
ECHO %app%

call执行类似于eval的声音,例如。 Perl,%1被替换,然后语句SET app=%a1%被执行。# 如果没有CALL,则%a1%的值为app,而不是application 1