在 powershell 命令提示符中用变量的值替换变量

在 powershell 命令提示符中用变量的值替换变量

在 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>

这个技巧最适用于路径,尽管它也可能在某些其他有限的情况下起作用。

但是,如果没有先命令的话,这肯定行不通——老实说,命令名称是什么并不重要。

相关内容