gpt4 book ai didi

javascript - 将包含双引号的字符串从 node.js 脚本传递给 VBScript

转载 作者:行者123 更新时间:2023-11-29 23:19:01 25 4
gpt4 key购买 nike

我有一个调用 VBScript 的 node.js 脚本,将字符串作为参数传递。

master.js:

'use strict';

var str = 'This string contains "double quotes".';
console.log("In JS: " + str);

const
spawn = require( 'child_process' ).spawnSync,
vbs = spawn( 'cscript.exe', [ 'slave.vbs', str ] );

console.log("In VBScript: " + `${vbs.stdout.toString()}` );

奴隶.vbs:

Option Explicit

If 0 < WScript.Arguments.Count Then
Dim str : str = WScript.Arguments(0)
End If

Wscript.Stderr.WriteLine str

控制台输出:

In JS: This string contains "double quotes".

In VBScript: This string contains \double

这不好,我需要它们相同。经过一些研究,我发现 VBScript 的转义字符是双引号本身。所以如果我想要在 VBScript 中包含双引号的字符串文字,它必须这样声明:

Dim str : str = "This string contains ""double quotes""."

考虑到这一点,我更改了 master.js 代码:

'use strict';

var str = 'This string contains ""double quotes"".';
console.log("In JS: " + str);

const
spawn = require( 'child_process' ).spawnSync,
vbs = spawn( 'cscript.exe', [ 'slave.vbs', str ] );

console.log("In VBScript: " + `${vbs.stderr.toString()}` );

新的控制台输出:

In JS: This string contains ""double quotes"".

In VBScript: This string contains \\double quotes\\.

还是不行。我怎样才能正确完成这项工作?

最佳答案

您可以编写一个显式的 chr() 调用:

var str ='This string contains' & chr(34) & 'double quotes' & chr(34) &'.';

关于javascript - 将包含双引号的字符串从 node.js 脚本传递给 VBScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51486758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com