在 powershell 中传递感叹号、括号作为可执行参数的一部分
passing exclamation, brackets as part of executable arguments in powershell
在 git 中,如果我们想从 diff 输出中排除一个文件(在 bash 上),我们会执行如下操作:
git diff -- !(file.txt)
但这在 powershell 中是不允许的。因此,有没有办法在 powershell 提示符下实现这一点?
只需单引号你的论点:
git diff -- '!(file.txt)'
单引号使 PowerShell 按字面意思处理字符串并阻止它解释字符。例如 (
作为它自己的元字符。
在调用目标程序之前,PowerShell 根据需要在幕后重新引用参数;即:
如果参数包含空格,它会将参数包含在 "..."
中,并且在某些不太常见的情况下也是如此(请参阅下面的 link)。
它传递它 ,否则没有 引号。
注意:存在与这种不可见的重新引用相关的陷阱 - 请参阅 。
在 git 中,如果我们想从 diff 输出中排除一个文件(在 bash 上),我们会执行如下操作:
git diff -- !(file.txt)
但这在 powershell 中是不允许的。因此,有没有办法在 powershell 提示符下实现这一点?
只需单引号你的论点:
git diff -- '!(file.txt)'
单引号使 PowerShell 按字面意思处理字符串并阻止它解释字符。例如 (
作为它自己的元字符。
在调用目标程序之前,PowerShell 根据需要在幕后重新引用参数;即:
如果参数包含空格,它会将参数包含在
"..."
中,并且在某些不太常见的情况下也是如此(请参阅下面的 link)。它传递它 ,否则没有 引号。
注意:存在与这种不可见的重新引用相关的陷阱 - 请参阅