在PowerShell中是否有!$等价物?基本上,我希望能够使用像
这样的命令Tk
然后能够使用类似
的东西mv *.txt ~\Documents
这应该带我到上一个命令中指定的Documents文件夹。我一直在linux中使用它,它让我觉得它不像PowerShell那样。
谢谢!
编辑:使用$$时,我收到以下错误
cd !$
答案 0 :(得分:3)
about_automatic_variables可以立即回答您在寻找的内容。
$$
包含会话收到的最后一行中的最后一个标记。
在实践中,这应该有效。
PS C:\Users\josh.howard\Desktop\test> mv *.mp 'C:\Program Files\LANDesk\ManagementSuite\ldscan'
PS C:\Users\josh.howard\Desktop\test> cd $$
但是在您的情况下,令牌的嵌入式引号存在问题。
cd : Cannot find drive. A drive with the name ''C' does not exist.
我可以使用PowerShell v4复制此问题。通常,当您将带引号的字符串发送到像Set-Location
这样的cmdlet时,解析器将使用引号,然后将完整路径发送到参数Path
。在您的测试用例中使用$$
实际上是发送未转义的带引号的字符串!这就是为什么删除它们会使这个过程发挥作用。
cd ($$.Trim("'"))
Bill Stewart has a process to address this issue as well.
这可能已在第5版中解决,但我无法确认这种情况。
所以我在Windows 10中对它进行了测试,它似乎在那里工作,但不是在版本4.所以它似乎已经修复,只要你的东西比4更新。
答案 1 :(得分:0)
这是一个与cd
一起使用的示例$$
函数:
function cd {
param(
[String] $path
)
Set-Location $path.Trim('"').Trim("'")
}