批处理文件将<>写入文本文件

3

这是我第一次做这些事情。 基本上,我正在为教堂歌曲创建一个批处理文件 HTML 制作工具。以下是我遇到的问题:

echo <br> %var17% >>Runfiles\temporary2.txt

基本上,变量17是一行歌词,我想在它前面加一个换行符。 我已经将模板制作人分成三个部分:

  • 前半部分
  • 歌词
  • 后半部分

以下是代码:

@echo off
copy "I:\Build\Files\*.txt"

ren *.txt temp.txt

setlocal ENABLEDELAYEDEXPANSION
set vidx=0
for /F "tokens=*" %%A in (temp.txt) do (
SET /A vidx=!vidx! + 1
set var!vidx!=%%A
)
set var

echo <br> %var17% >>Runfiles\temporary2.txt

TYPE Runfiles\temp1.txt > run.html  
TYPE temp.txt >> run.html
TYPE Runfiles\temp2.txt >> run.html
pause

Temp1 是起始位置,temp2 是结束位置,我有一份歌词文档,想在它们前面插入一个 <br> 元素。

原因是我要处理大约 100 首歌曲,如果手工处理会非常耗时。


你从来没有真正说明你的问题或疑问。标题接近,但你不应该仅依赖于标题。 - dbenham
可能是在Windows命令提示符中转义尖括号的重复问题。 - phuclv
2个回答

7
echo ^<br^>

在DOS/Win命令行中,插入符号(^)是转义字符。


1
@dbenham 如果你真的想深入了解,它们看起来是一样的,但是“circumflex”是一个在字符上方的重音符号,而“caret”则是一个独立的间隔字符。 - Eitan T

3
SilverbackNet提供了正确的方法来转义特殊字符,例如<>。但是,如果建立一个包含HTML标记的变量可能更加方便。如果这些特殊字符被引用或使用延迟扩展进行扩展,则无需对其进行转义。定义时应使用引号,扩展时应使用延迟扩展。只有在需要在多个位置编写标记时,使用该变量才会成为优势。
set "br=<br>"
....
echo !br! %var17% >>Runfiles\temporary2.txt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接