Javascript 在windows命令中转义双引号

Javascript 在windows命令中转义双引号,javascript,windows,child-process,Javascript,Windows,Child Process,我正在尝试使用Jest运行一个示例测试,以验证我的Google Cloud功能是否正常工作,但我经常遇到以下错误 错误:命令失败:gcloud beta函数调用cf-1--region europe-west1--数据“{”data:“eyJkYXRhIjoiMSJ9”}” 错误:(gcloud.beta.functions.call)[--data]的值无效:不是有效的JSON:无法解码JSON对象 我知道在windows终端中运行命令时可以用反斜杠转义双引号,但如何在JavaScript中实

我正在尝试使用Jest运行一个示例测试,以验证我的Google Cloud功能是否正常工作,但我经常遇到以下错误

错误:命令失败:gcloud beta函数调用cf-1--region europe-west1--数据“{”data:“eyJkYXRhIjoiMSJ9”}”
错误:(gcloud.beta.functions.call)[--data]的值无效:不是有效的JSON:无法解码JSON对象

我知道在windows终端中运行命令时可以用反斜杠转义双引号,但如何在JavaScript中实现这一点

test.js

const childProcess = require('child_process');

describe('Test CF', () => {
    it('print outs the error message when received JSON is blank', done => {
        const msg = { data: '1' };
        const encodedMsg = Buffer.from(JSON.stringify(msg)).toString('base64');
        const data = JSON.stringify({ data: encodedMsg });
        const executeResultOutput = childProcess.execSync(`gcloud beta functions call cf-1 --region europe-west1 --data '${data}'`).toString();

        const logs = childProcess
            .execSync(
                `gcloud functions logs read cf-1 --region europe-west1 --execution-id ${executionIdObj}`,
            )
            .toString();

        expect(logs).toEqual(expect.stringContaining('Error..'));
    });
});
尝试两次:

data={“data”:“eyJkYXRhIjoiMSJ9”}
console.log(
stringify(JSON.stringify(数据))

)
FYI,在Windows中,除了围绕可执行路径的初始引号(这对
CreateProcessW
很重要)外,双引号或单引号的含义以及如何转义取决于应用程序。大多数人都跟随。这与Unix形成鲜明对比,在Unix中,父级控制命令行如何解析为
exec*
系统调用的参数。