Как создать строку PowerShell для интерполяции, когда допустимый символ переменной следует за переменной в строке? - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь использовать интерполяцию строк в PowerShell:

$myvariable = "World"
Write-Host "Hello $myvariable" 

Приведенный выше код работает нормально, пишет "Hello World"

Однако, если в строке символ следует за переменнойчасть формирует допустимое имя переменной, оно не может быть проанализировано из-за неоднозначности

$myvariable = "World"
Write-Host "Hello $myvariableimmediately continuing" 

Вопрос

Я понимаю, что это не должно работать, но, несмотря на поиск в Google, я могуНе найти такой пример.Какой синтаксис мне не хватает?

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Если вы хотите, чтобы в вашей переменной был введенный текст, вы можете сделать это следующим образом:

Write-Host "Hello $($myvariable)immediately continuing"

Hello World, немедленно продолжая

Конструкция $($variable)также полезно, если ваш объект является многозначным, и вы просто хотите записать одно значение.

Write-host "My cat's name is $($cat.name) and he is $($cat.age) years old"

Скобки работают в основном так же, как в математике - сначала выполняется выражение внутри, а затемрезультат анализируется с остальной частью заявления.

0 голосов
/ 29 января 2019

Пробел - это единственный способ завершить имя переменной. Вы можете использовать квадратные скобки, чтобы точно определить длину переменной в строке.

$myvariable = "World"
Write-Host "Hello ${myvariable}immediately continuing" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...