0

在 bash 中,要从最后一个命令中获取参数,我们调用$_. $_我已经搜索但在 PowerShell 中找不到与 bash 等效的内容?例子:

$ mkdir 20171206
$ cd $_

现在 bash 当前工作目录将是20171206,我正在尝试通过 PowerShell 实现相同的目标。

是否可以 ?

4

1 回答 1

1

显然,$_在 bash 中的意思是“上一个命令的最后一个参数”。

最接近的近似值是$$,其定义为:

包含会话收到的最后一行中的最后一个令牌。

但是,我不知道这是否意味着 PowerShell 的$$ 行为类似于 bash 的行为,$_或者它的行为类似于 bash 的!$. 我认为它更接近!$,但我目前在我的 Chromebook 上,无法确认。

编辑:就像!$

PS C:\> Get-Location > a.txt
PS C:\> $$
a.txt

所以没有直接等同于 bash 的$_.

但请记住,PowerShell 强烈支持对象和管道,因此保留以纯文本和空格分隔的标记来考虑所有内容的 bash 约定也不会为您服务。在 PowerShell 中执行此操作的最佳方法是:

mkdir 20171206 | cd

或者,如果您没有使用任何默认的 PowerShell 别名和函数(例如,我不确定 Linux PowerShell 上保留了什么):

New-Item 20171206 -ItemType Directory | Set-Location
于 2017-12-06T13:28:03.567 回答