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

PowerShell:如何为含反引号的密码添加额外反引号?

解决PowerShell密码中反引号丢失的问题

问题核心是:双引号字符串里的`会被PowerShell当成转义字符解析,直接丢失,导致后续替换操作根本找不到目标字符。

为什么你的代码失效

你写的$Passwd = "StringWithCharacter"中,是转义符,PowerShell会把C解析成普通的C,变量$Passwd里根本没有反引号,所以replace('','``')找不到任何可替换的内容,输出自然和原变量一致。

解决方案

1. 输入阶段保留反引号

  • 如果是手动输入密码,用Read-Host读取,它会完整保留用户输入的所有字符,包括反引号:
    $Passwd = Read-Host "输入解密密码"
    # 此时输入含`的密码,变量会完整存储原始内容
    
  • 如果是硬编码或从变量赋值,用单引号包裹字符串,单引号里的`不会被解析为转义符:
    $Passwd = 'StringWith`Character'
    

2. 正确添加转义反引号

当你需要把密码传递给需要转义反引号的场景时(比如某些解密命令要求反引号转义),再执行替换:

$Passwd = 'StringWith`Character'
$new_pw = $Passwd.Replace('`', '``')
Write-Output "原密码:$Passwd"
Write-Output "转义后密码:$new_pw"

输出结果:

原密码:StringWith`Character
转义后密码:StringWith``Character

注意

如果密码已经在双引号赋值时丢失了反引号,是无法通过后续操作恢复的——因为转义后的字符已经被PowerShell处理,原始反引号不存在了。所以关键是在接收或存储密码的第一步就保留原始字符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 11:52:12