azure 如何使用powershell将json文件的内容分配给变量

oalqel3c  于 2022-12-04  发布在  Shell
关注(0)|答案(1)|浏览(129)

我尝试运行下面的PowerShell脚本以添加Azure数据工厂数据集。但我收到提示错误。Json文件

{
    "name": "DSNAME",
    "properties": {
        "linkedServiceName": {
            "referenceName": "REGNAME1",
            "type": "LinkedServiceReference"
        },
        "annotations": [],
        "type": "AzureDataExplorerTable",
        "schema": [],
        "typeProperties": {
            "table": "TABLE_TEST"
        }
    },
    "type": "Microsoft.DataFactory/factories/datasets"
}

**动力 shell **

az config set extension.use_dynamic_install=yes_without_prompt
Get-ChildItem "ADF_DATASETS/" -Filter *.json | 
Foreach-Object {
    $content = Get-Content $_.FullName

az datafactory dataset create --properties $content --name "DATASETNAME" --factory-name "ADFNAME" --resource-group "RG_TEST"

}

**错误:**错误详细信息:属性名称必须括在双引号中:第1行第2列(字符1)请提供有效的JSON文件路径或JSON字符串。提供的JSON字符串可能已被shell解析。请参阅https://docs.microsoft.com/cli/azure/use-cli-effectively#use-quotation-marks-in-arguments错误:无法将字符串解析为JSON:

gcxthw6b

gcxthw6b1#

期待什么样的文字?
它要求JSON字符串用双引号括起来,所以你必须把$content的值放在双引号内。

az datafactory dataset create --properties "{\"type\":\"AzureBlob\",\"linkedServiceName\":{\"type\":\"LinkedServiceReference\",\"referenceName\":\"exampleLinkedService\"},\"parameters\":{\"MyFileName\":{\"type\":\"String\"},\"MyFolderPath\":{\"type\":\"String\"}},\"typeProperties\":{\"format\":{\"type\":\"TextFormat\"},\"fileName\":{\"type\":\"Expression\",\"value\":\"@dataset().MyFileName\"},\"folderPath\":{\"type\":\"Expression\",\"value\":\"@dataset().MyFolderPath\"}}}" --name "exampleDataset" --factory-name "exampleFactoryName" --resource-group "exampleResourceGroup"

相关问题