![在 powershell 命令提示符中用变量的值替换变量](https://linux22.com/image/1393292/%E5%9C%A8%20powershell%20%E5%91%BD%E4%BB%A4%E6%8F%90%E7%A4%BA%E7%AC%A6%E4%B8%AD%E7%94%A8%E5%8F%98%E9%87%8F%E7%9A%84%E5%80%BC%E6%9B%BF%E6%8D%A2%E5%8F%98%E9%87%8F.png)
在 Windows PowerShell 中,是否有一种方法可以“评估”变量,以便将其值粘贴到命令提示符中?我想要执行的使用场景如下:
假设我有一个$path
包含“C:/Users/Me/Some/Long/Path”的变量。我想将其写入cd $path
命令提示符,然后$path
用其值替换,这样我就可以在命令提示符中手动编辑长路径,最后按 Enter 更改目录。这种或类似的行为可用吗?只使用变量而不在开头cd C:/Users/Me/Some/Long/Path
使用 可以吗?cd
答案1
有一种方法 - 它有点不靠谱,而且并不总是有效。以 cd 为例,如果你输入:
cd $path\<TAB>
PowerShell 会将 $path 扩展为其值,但前提是存在子目录。如果 $path 是叶目录,则 PowerShell 根本不会替换文本。
现在到了烦人的部分——PowerShell 不仅会扩展变量,还会包含第一个可能的补全。如果这不是你想要的,你就必须删除该文本。如果你知道所需路径的一部分,最好添加它,例如:
cd $path\*part<TAB>
注意,我添加了一个前导通配符 - 效果很好。不需要尾随通配符,当您点击 时,PowerShell 会假定您需要尾随通配符。
此技巧也可以与其他命令一起使用,例如如果您想要完成文件而不仅仅是目录,请尝试:
cat $path\<TAB>
这个技巧最适用于路径,尽管它也可能在某些其他有限的情况下起作用。
但是,如果没有先命令的话,这肯定行不通——老实说,命令名称是什么并不重要。