You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中使用start命令Tab补全自动加反引号报错如何解决?

报错原因

  1. PowerShell 默认的 Tab 路径补全会对 [] 这类通配符字符自动加反引号转义,但补全后路径用单引号包裹,单引号字符串内的反引号不会被识别为转义符,实际传给命令的路径会携带多余反引号,导致系统找不到对应文件。
  2. 你用的 start 是 Start-Process 命令的别名,该命令默认将传入的路径当做通配符模式解析,就算手动删除反引号,方括号也会被当做通配符规则处理,依然会匹配失败。

禁止Tab补全自动转义方括号的设置方法

  1. 首先打开 PowerShell 用户配置文件,执行命令:
    notepad $PROFILE
    如果提示文件不存在,先执行下方命令创建文件后再重新打开:
    New-Item -Path $PROFILE -ItemType File -Force
  2. 在打开的配置文件末尾添加以下代码:
Set-PSReadLineKeyHandler -Key Tab -ScriptBlock {
    param($key, $arg)
    $currentInput = $null
    [Microsoft.PowerShell.PSConsoleReadLine]::GetBufferState([ref]$currentInput, [ref]$null)
    $completions = [System.Management.Automation.CommandCompletion]::CompleteInput($currentInput, $currentInput.Length, $null)
    if ($completions.CompletionMatches.Count -gt 0) {
        $completionText = $completions.CompletionMatches[0].CompletionText
        # 移除路径补全自动添加的方括号转义反引号
        $completionText = $completionText -replace '`(\[|\])', '$1'
        [Microsoft.PowerShell.PSConsoleReadLine]::Replace(0, $currentInput.Length, $completionText)
    }
}
  1. 保存文件后,执行 . $PROFILE 让配置立即生效,之后所有新打开的 PowerShell 窗口的 Tab 补全都不会再自动给方括号加反引号转义。

额外说明

如果不想修改补全规则,也可以在使用 start 命令时手动加上 -LiteralPath 参数,强制命令将路径当做字面量解析,不需要转义即可正确识别带方括号的文件,示例:
start -LiteralPath '.\[test].txt'

内容的提问来源于stack exchange,提问作者HauVo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 02:45:03