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

PowerShell中转义字符反引号`与反斜杠\的区别是什么?

PowerShell 反引号`与反斜杠\转义规则差异

反引号(`):PowerShell 原生默认转义符

反引号是PowerShell语法规定的官方转义字符,在PowerShell自身解析代码的阶段就会生效,适用所有PowerShell原生语法场景:

  • 转义PowerShell特殊关键字字符:避免特殊字符被识别为语法符号,比如$默认识别为变量前缀,使用`$即可输出$字面量,示例:
    # 输出:变量名是$PWD,值为C:\Users\xxx
    Write-Host "变量名是`$PWD,值为$PWD"
    
  • 长命令换行转义:一行写不下的命令可以在结尾加反引号,告诉PowerShell下一行是当前命令的延续,示例:
    Get-ChildItem `
      -Path "C:\测试目录" `
      -Filter "*.docx" `
      -Recurse
    
  • 字符串内的引号转义:双引号包裹的可扩展字符串中,用`"即可输出双引号字面量,避免被识别为字符串边界:
    # 输出:他说:"今天要下雨"
    Write-Host "他说:`"今天要下雨`""
    

注意:单引号包裹的是纯字面量字符串,其中的反引号不会生效,也不会解析变量,仅支持两个连续单引号转义单个单引号。


反斜杠(\):特定场景下的转义符

反斜杠不是PowerShell原生的转义字符,仅在两类特定场景下会被对应解析引擎识别为转义符:

  1. 正则表达式场景
    PowerShell的正则匹配、替换功能遵循.NET正则规范,正则引擎将反斜杠识别为转义符,用于转义正则特殊字符,和PowerShell本身的语法解析无关:
# 匹配文件名中的.号,.是正则通配符,需要用\转义才会匹配字面量
# 执行结果返回True
"笔记2024.txt" -match "笔记2024\.txt"
  1. 外部可执行程序传参场景
    Windows系统层面解析可执行程序的命令行参数时,遵循C运行时的参数解析规则,该规则中反斜杠是转义符,用于转义引号、保留连续空格等,这也是传递带特殊符号的参数给exe时需要用反斜杠转义的原因:
# 给test.exe传递带双引号的参数值:hello "world"
# 其中`"是让PowerShell识别为字符串内容,\是给exe的参数解析器识别的转义符
.\test.exe "hello \`"world\`""

注意:路径中使用的\是路径分隔符,不属于转义用途。


核心差异总结

  • 生效阶段不同:反引号在PowerShell解析自身代码的第一阶段生效,反斜杠仅在进入正则引擎、外部程序参数解析引擎时才会生效,PowerShell本身不会将\识别为转义符。
  • 适用范围不同:反引号覆盖所有PowerShell原生语法场景,反斜杠仅适用于正则、外部exe传参两类特定场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 22:15:04