0

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 Script Host (JScript) でそれを行うことは可能ですか? evalで遊んでみましたが、うまくいきませんでした。何か案は?

ありがとう、ラクーン

4

3 に答える 3

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();
于 2013-03-02T09:15:25.620 に答える
1

質問が正しければ、このトピックが役立つかもしれません。

(function() { eval.apply(this, arguments); }("x=1;y=2"));
WScript.Echo("x=" + x, "y=" + y); // x=1 y=2
于 2013-03-02T16:09:32.750 に答える
1

オブジェクトを作成し、プロパティを動的に割り当てることができます。

var VarHolder = {};

VarHolder[VarName] = VarValue;
于 2013-03-02T07:44:25.273 に答える