2017-09-04 97 views
0

我能从0123SPowerShell命令行中创建一个自定义变量,但预定义的变量不能以相同的方式工作。如何从PowerShell命令行回显预定义变量?

回显预定义变量的正确方法是什么?

Write-Host $path的作品。
Write-Host $PSScriptRoot没有。

这是我的代码。

powershell.exe -ExecutionPolicy ByPass -Command "& { $path = """test"""; Write-Host $path; Write-Host $PSScriptRoot; }" 

我想有目录当前脚本变量。

像这样的东西$RootPath = Split-Path (Split-Path $PSScriptRoot -Parent) -Parent

+7

'$ PSScriptRoot'是为文件中的脚本定义的。您没有运行基于文件的脚本,因此$ PSScriptRoot是空的。如果你想要当前目录,使用'pwd'或'[Environment] :: CurrentDirectory''(取决于你想要的是PowerShell的意见还是操作系统的意见)。 –

+0

@JeroenMostert您能否提供一个两个例子? –

+0

'写主机(拆分路径(pwd) - 父母)'?或者先设置一个变量:'$ path = pwd'。这是使用cmdlet的输出作为另一个cmdlet的输入的基本情况。 –

回答

0

如果当前位置是你想要的,这一直对我有用。

(Get-Location).path 

如果你还想知道其他预定义变量,写主机应该工作。

Get-Variable或者只是Variable将显示所有预定义的变量。如果你看看$PSScriptroot,你会意识到它是空的。这就是为什么它似乎不适合你。