@ Джои имеет правильный ответ, но просто добавлю еще немного, почему вам нужно форсировать оценку с помощью $()
:
Ваш пример кода содержит неоднозначность, которая указывает на то, почему создатели PowerShell, возможно, решили ограничить расширение только ссылками на переменные и не поддерживать доступ к свойствам (например, расширение строки выполняется путем вызова ToString()
метод на объекте, который может объяснить некоторые «странные» результаты).
Ваш пример содержится в самом конце командной строки:
...\$LogFileName.ldf
Если свойства объектов были расширены по умолчанию, приведенное выше разрешит до
...\
, поскольку объект, на который ссылается $LogFileName
, не будет иметь свойства с именем ldf
, вместо переменной будет подставляться $null
(или пустая строка).