json 文件中的 powershell 字符问题

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

考虑以下文件:

节点.json

{
    "capabilities": [
        {
            "browserName": "chrome",
            "chrome_binary": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"
        }
    ],
    "hubHost": "172.1.1.1",
    "hubPort": 4444,
    "port": 10,
    "host": "172.11.0.1",
    "custom": {
        "nodeVersion": "3.12.0"
    },
    "hub": "http://172.11.1.1:4444"
}


启动.bat

java -Dwebdriver.chrome.driver="C:\selenium\chromedriver.exe" -jar C:\selenium\Node.Selenium.jar -nodeConfig C:\path\node.json


  • 当我运行
    start.bat
    时,我的期望是节点将注册到相关的集线器,但它不会注册到集线器。
    • json 内容中的 hub 值按如下所示方式更改,并使用 unicode 转义序列:

        "hub": "http://\u003c/powershell\u003e:4444"
      


我尝试过的:

  • 使用PowerShell将

    node.json
    的字符编码转换为utf8:

    $jsonString = $jsonContent | ConvertTo-Json -Depth 100 -Compress
    Set-Content -Path $jsonFilePath -Value $jsonString -Encoding UTF8
    
    • 结果:
      start.bat
      不起作用


  • 删除

    node.json
    并使用 ASCII 字符编码重新创建它。

    • 结果:
      start.bat
      不起作用



问题:

我该如何解决这个问题,有没有人有类似的问题并且可以解决?

json powershell
1个回答
0
投票

再解释一下,我使用terraform运行一个实例,并在实例用户数据中运行一个sh,在这个用户数据中,下载了一个zipi文档到特定目录,有jar包json文件等必要文件,java安装文件,然后分别安装后,我更新json内容中的hub地址如下,最后运行start.bat文件。

当我手动执行这些步骤时,当我运行一个空实例并将手动文件放入其内容并手动更新 json 时,节点会毫无问题地注册到相关集线器。 同样,我在powershell中手动尝试了用户数据中的powetshell命令,一切顺利,json更新成功,但是当start.bat在最后阶段运行时,集线器地址“http://\u003c/powershell\ u003e:4444”就这样被破坏了。

try {
$privateIP = (Get-NetIPAddress -AddressFamily IPv4 | Where-Object { $_.IPAddress -like '172.11.*' }).IPAddress
Log-Message "Retrieved private IP: $privateIP"
$jsonFilePath = "C:\path\node.json"
$jsonContent = Get-Content -Path $jsonFilePath -Raw | ConvertFrom-Json
$jsonContent.host = $privateIP
$jsonContent.hubHost = "172.11.1.1"
$jsonContent.hub = "172.11.1.1:4444"
$jsonString = $jsonContent | ConvertTo-Json -Depth 100 -Compress
Set-Content -Path $jsonFilePath -Value $jsonString
Log-Message "Updated nodecalisan.json with private IP"
} catch {
Log-Message "Failed to retrieve or update nodecalisan.json: $_"}
© www.soinside.com 2019 - 2024. All rights reserved.