PowerShell中命令前的&符号(&)是什么作用?
PowerShell中命令前的&符号(&)是什么作用?
嘿,这个问题我之前也踩过坑,其实&在PowerShell里叫做调用运算符(Call Operator),核心作用就是给PowerShell发信号:把后面跟着的内容(不管是带空格的路径、存在变量里的命令,还是脚本块)当成可执行的命令来跑。
咱们结合你遇到的情况拆解一下:
- 你用Tab补全带空格的程序路径时,PowerShell自动加上
&和引号,是因为路径里有空格(比如Program Files),要是只给路径套引号,PowerShell会把它当成普通字符串,根本不会去执行这个程序。这时候&就像个“启动开关”,告诉PowerShell:“别把这个字符串当文本,去运行它!” - 你直接跑
'C:\Program Files\KeePassXC\keepassxc-cli.exe' --help报错,就是因为PowerShell把带引号的路径当成了纯文本,后面的--help就成了莫名其妙的语法冗余。只要加上&写成& 'C:\Program Files\KeePassXC\keepassxc-cli.exe' --help,PowerShell就会正确识别:哦,我要启动这个exe,还要传--help参数。
顺便提下&的其他常用场景:
- 执行路径里带空格/特殊字符的可执行文件
- 执行存在变量里的命令(比如
$myCmd = 'Get-ChildItem'; & $myCmd) - 执行脚本块(比如
& { Write-Host "Hello, PowerShell!" })
备注:内容来源于stack exchange,提问作者toraritte
相关产品推荐
相关产品推荐

