batch-file - 无法将具有多个特殊字符的字符串传递给批处理脚本中的变量
问题描述
在批处理脚本中,我试图捕获包含多个特殊字符的字符串
< , > , "文本" , = , / , \ 等。
在一个变量中,但我无法使用不同的转义字符让它工作
\ 、 "" 、 ^ 等。
在不同的配置中,无论是单个封闭,单独转义每个特殊字符,转义字符串部分都没有成功。
编辑:根据 Squashmans 的评论,我尝试使用 enableddelayedexpansion 但这并没有解决问题
例子:
setlocal enabledelayedexpansion
set "var=<ExampleString Id="63fc47e6-fafb-48f92-bd92-38ed9aa4a765" Name="The Name of this item." AnotherItem="Name of this item." AnotherID="AAA-123" Action="GO"><ItemOne><Item Id="*"/></ItemOne><ItemTwo><Location1 Path="Mydrive\Folder1\*"/><Locaton2 Path="C:\Program Files (x86)\*"/></ItemTwo></ExampleString>"
ECHO %var%
它仍然返回错误:
<此时是出乎意料的。
解决方案
根据 Squashmans 使用 enableddelayedexpansion 的评论,正确使用变量语法和下一条评论指出实际上延迟扩展使用!var!
而不是%var%
它完美地工作。
解决方案示例:
setlocal enabledelayedexpansion
set "var=<ExampleString Id="63fc47e6-fafb-48f92-bd92-38ed9aa4a765" Name="The Name of this item." AnotherItem="Name of this item." AnotherID="AAA-123" Action="GO"><ItemOne><Item Id="*"/></ItemOne><ItemTwo><Location1 Path="Mydrive\Folder1\*"/><Locaton2 Path="C:\Program Files (x86)\*"/></ItemTwo></ExampleString>"
ECHO !var!
使用setlocal enabledelayedexpansion
, 正确的变量语法set "var=content"
和扩展的实际延迟 with!var!
而不是%var%
推荐阅读
- sql - 获得前 5 个最相关的项目
- python - Python基于csv列函数获取值仅第一次有效
- css - 网格模板区域中的 CSS 网格自动
- python - PIP将软件包安装到python的错误实例/目录
- vba - 加载和卸载表单作为传递给子的字符串
- javascript - 使用 lodash 过滤对象数组并检查对象属性值是否存在于另一个数组中
- c - C 中的泰勒级数 - math.h 与自己的实现
- android - 通过 WebView 上传文件时显示进度条
- pine-script - 如何为此形态指标添加警报条件?
- c++ - 编译 C++ MEX MATLAB API 时未解析的外部符号符号 __imp_get_function_ptr