【问题标题】:Special character <abc>, angular bracket replace in a .BAT file特殊字符 <abc>,.BAT 文件中的尖括号替换
【发布时间】:2016-03-16 18:08:12
【问题描述】:

我正在 Windows 中编写一个脚本,一个 .BAT 文件,以替换: 为 abc。 但是我遇到了 Angular 括号字符的问题。

脚本如下所示:

SET STRING=<ABCDEFG>
SET STRING=%STRING:<=%
SET STRING=%STRING:>=%
ECHO String: %STRING%

但只得到错误信息:The syntax of the command is incorrect.

 D:\BACKUP>SET STRING=<ABCDEFG> 

【问题讨论】:

  • 请学习如何正确格式化代码;点击edit,然后点击编辑区工具栏中的{}按钮,看看效果如何……
  • 我已经为你编辑了。接受编辑。
  • 逗号不是在批处理文件中分隔命令的有效方式。

标签: batch-file


【解决方案1】:

就像 Magoo 说的,特殊字符需要转义。
您可以使用插入符号,但也可以使用引号

SET "STRING=<ABCDEFG>"
SET "STRING=%STRING:<=%"
SET "STRING=%STRING:>=%"
ECHO String: "%STRING%"

或者更好地使用延迟扩展而不是百分比扩展,因为延迟扩展可以处理任何内容。

SET "STRING=<ABCDEFG>"
SET "STRING=!STRING:<=!"
SET "STRING=!STRING:>=!"
ECHO String: !STRING!

【讨论】:

  • Getting "系统找不到指定的文件。按任意键继续..."对于下面的代码。请帮助@echo off setlocal enableextensions disabledelayedexpansion set "textFile=C:\toolbase\alm_utils_tmpl_dev\2016.1.0a\abc.txt" for /f "delims=" %%i in ('type "%textFile%" ^& break ^ > "%textFile%" ') 做 ( SET "STRING=" SET "STRING=%STRING:=%" ECHO String: "%STRING%" ) 暂停
【解决方案2】:

重定向器等特殊字符需要用插入符号转义:^&lt;

% 需要被% 转义,因此:%%

&amp; 将命令分隔在一行中。

【讨论】:

  • 我无法替换文件中的字符串。@echo off setlocal enableextensions disabledelayedexpansion set "textFile=C:\toolbase\alm_utils_tmpl_dev\2016.1.0a\abc.txt" for /f "delims= " %%i in ('type "%textFile%" ^& break ^> "%textFile%" ') do ( SET "STRING=" SET "STRING=%STRING:=%" ECHO String: "%STRING%" ) pause.. 输出:系统找不到指定的文件。按任意键继续 。 . .请帮忙
  • @geetha 不要在评论中添加代码,如果您有新问题,请随时打开一个新线程
猜你喜欢
  • 1970-01-01
  • 2013-08-14
  • 1970-01-01
  • 1970-01-01
  • 2018-09-11
  • 2020-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多