如何在PowerShell中定义同时包含单引号和双引号的字符串
混合引号字符串变量定义方案
核心思路是使用各语言原生支持的原始字符串/here-string语法,无需修改自动生成的原始文本内容,即可直接存入变量:
PowerShell(适配你提到的@''@/@""@语法)
你之前尝试的语法不生效大概率是不符合here-string的格式要求:起始标记必须单独占一行,结束标记必须单独顶格占一行,正确写法如下:
$targetText = @' "Sometext":"more text";'still text '@
如果原始文本中存在'@组合,换用双引号包裹的here-string即可:
$targetText = @" "Sometext":"more text";'still text "@
Python
直接使用三引号包裹即可:
# 单三引号写法 target_text = ''' "Sometext":"more text";'still text ''' # 双三引号写法 target_text = """ "Sometext":"more text";'still text """
如果不需要首尾自动生成的换行,调用.strip()方法处理即可。
C#
使用C# 11及以上版本支持的原始字符串语法,用三个及以上双引号包裹:
string targetText = """ "Sometext":"more text";'still text """;
如果原始文本包含连续三个双引号,调整起止标记的双引号数量为4个、5个即可,无需转义内容。
JavaScript/TypeScript
使用反引号包裹的模板字符串语法:
const targetText = `"Sometext":"more text";'still text`
如果原始文本包含反引号,使用ES2025+支持的原始字符串标记即可兼容。
Bash/Shell
使用带单引号标记的EOF here-doc:
target_text=$(cat <<'EOF' "Sometext":"more text";'still text EOF )
给EOF标记加单引号可禁用内部变量解析,完全保留原始文本内容。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

