如何在不向字符串中添加字符的情况下将多行字符串写入文件?

问题描述 投票:0回答:1

我有一个 JavaScript 函数,我正在尝试将 PowerShell 脚本写入 PowerShell 文件。这是函数:

const script = 
`$Win32Product= Get-WmiObject -Class Win32_Product | Where Name -like 'Test Client'
if ($Win32Product -eq $null){$Check=$false}else{$Check=$true}
$Hash = @{ Check = $Check }
Return $Hash | ConvertTo-Json -Compress`;

const writeStringToPowerShellFile = () => {
    const blob = new Blob([script], { type: "text/plain" });
    const url = URL.createObjectURL(blob);
    const link = document.createElement("a");
    link.download = "resultScript.ps1";
    link.href = url;
    link.click();
};

忘记脚本本身是否有意义,问题是当我这样做时,ps1 文件在一行中出现了

"
\n
并且基本上只是弄乱了 powershell 命令。我如何确保文件的内容看起来完全像这样:

$Win32Product= Get-WmiObject -Class Win32_Product | Where Name -like 'Test Client'
if ($Win32Product -eq $null){$Check=$false}else{$Check=$true}
$Hash = @{ Check = $Check }
Return $Hash | ConvertTo-Json -Compress
javascript powershell file blob stringify
1个回答
2
投票

不要使用

JSON.stringify
,因为你正在处理一个字符串,而不是一个对象。

尝试替换:

const fileData = JSON.stringify(script);
const blob = new Blob([fileData], { type: "text/plain" });

与:

const blob = new Blob([script], { type: "text/plain" });    
© www.soinside.com 2019 - 2024. All rights reserved.