在 config.txt 中,我有以下字符串:
Dispatcher=argo
Address=10.5.23.14
User=joe
在我的 script.js 中,我有变量:
var Dispatcher, Address, User;
在script.js中,我读取config.txt,解析字符串并获取名称/值对:
ConfigPair = ConfigString.split("=");
VarName = ConfigPair[0];
VarValue = ConfigPair[1];
我想要的是将VarValue分配给VarName变量。比如,如果我在VarName中获得“Address”,在VarValue中获得“10.5.23.14”,我想将Address变量设置为10.5.23.14。
我不希望做类似的事情:
if (VarName == "Dispatcher") {
Dispatcher = VarValue;
} else if (VarName == "Address") {
Address = VarValue;
} else if bla-bla-bla
我想以某种方式“读取”VarName的值并将VarValue分配给相应的变量。是否可以在Windows脚本宿主(JScript)中执行此操作?我玩 eval ,但未能使其正常工作。有什么想法吗?
谢谢, 浣熊
答案 0 :(得分:2)
如果您在浏览器中工作,可以使用全局window
对象,如下所示:
// VarName = "User"
// VarValue = "joe"
window[VarName] = VarValue;
alert(User); // prints "joe"
User = 'jack';
alert(User); // prints "jack"
使用WSH和Windows 7进行测试:
(function () {
var VarName = 'User'; // ConfigPair[0]
var VarValue = 'joe'; // ConfigPair[1]
this[VarName] = VarValue;
})();
WSH.Echo(User); // prints "joe"
WSH.Quit();
答案 1 :(得分:1)
您可以创建对象并动态分配属性
var VarHolder = {};
VarHolder[VarName] = VarValue;
答案 2 :(得分:1)
如果我的问题正确,那么this topic可能会有所帮助。
(function() { eval.apply(this, arguments); }("x=1;y=2"));
WScript.Echo("x=" + x, "y=" + y); // x=1 y=2