#powershell #variables
#powershell #переменные
Вопрос:
Есть ли способ добавить переменные в эту команду?
Set-NAVServerConfiguration -ServerInstance $ServiceName -KeyName "DestinationAppsForMigration" -KeyValue '[{"appId":"12345-6789", "name":"Some Name", "publisher": "Some Publisher" }]'
То, что я хотел бы иметь, было бы чем-то вроде этого:
Set-NAVServerConfiguration -ServerInstance $ServiceName -KeyName "DestinationAppsForMigration" -KeyValue '[{"appId":$TableMigrationExtID, "name":$TableMigrationExtName, "publisher": $TableMigrationExtPublisher }]'
С $TableMigrationExtID
, $TableMigrationExtName
и $TableMigrationExtPublisher
содержащие значения.
Если я попытаюсь запустить, он покажет эту ошибку
Ошибка
Комментарии:
1. просто переключитесь
'
и"
Ответ №1:
Согласно инструкции о кавычках, вы должны заключить свою строку во внешние двойные кавычки, чтобы внутренние переменные были заменены их значениями. Учитывая, что вам также необходимо сохранить внутренние двойные кавычки, вам придется экранировать их с помощью обратной метки или другой двойной кавычки.
Использование экранирования двойными кавычками:
Set-NAVServerConfiguration -ServerInstance $ServiceName -KeyName "DestinationAppsForMigration" -KeyValue "[{""appId"":$TableMigrationExtID, ""name"":$TableMigrationExtName, ""publisher"": $TableMigrationExtPublisher }]"
С помощью обратного экранирования:
Set-NAVServerConfiguration -ServerInstance $ServiceName -KeyName "DestinationAppsForMigration" -KeyValue "[{`"appId`":$TableMigrationExtID, `"name`":$TableMigrationExtName, `"publisher`": $TableMigrationExtPublisher }]"
Комментарии:
1. Спасибо! Не получал результата, но потом я заметил, что он не проходит должным образом, как показано в сообщении об ошибке. Добавить, чтобы снова добавить double » к переменным. Итак, это сработало, спасибо! Set-NAVServerConfiguration -ServerInstance $ServiceName -Ключевое имя «DestinationAppsForMigration» -значение ключа «[{«»AppID»»: $TableMigrationExtID, «»name»»:$TableMigrationExtName, «»publisher»»: $TableMigrationExtPublisher }]»
Ответ №2:
Это возможно. Быстрый и грязный ответ
Set-NAVServerConfiguration -ServerInstance $ServiceName -KeyName "DestinationAppsForMigration" -KeyValue '[{"appId":' $TableMigrationExtID ', "name":' $TableMigrationExtName ', "publisher":' $TableMigrationExtPublisher ' }]'
В основном вы добавляете строку вместе с ‘something’ $variable ‘что-то еще’
Комментарии:
1. Я получил эту ошибку, пытаясь использовать это решение, Set-NAVServerConfiguration: не удается найти позиционный параметр, который принимает аргумент ‘ ‘. Спасибо за ответ!