在批处理脚本中读写HTML文件

时间:2015-02-25 16:27:03

标签: html batch-file

我承认,除了基本的东西之外,我在编写DOS批处理脚本方面从来都不是那么擅长。 我需要编写一个脚本来读取HTML模板文件并从中创建一个新文件......现在我可以使用以下命令将文件读入变量:

for /f "delims=" %%x in (template.html) do set fileData=%%x

我可以回显变量,看看html数据在那里。 但是当我尝试使用以下方法写出来时

echo %fileData%>test2.html

我收到错误:

系统找不到指定的文件。

我不确定它是否与包含混淆输出到文件的html标签的变量有关?

2 个答案:

答案 0 :(得分:1)

是的,<>标记字符按字面计算echo %fileData%。使用延迟展开式样可以防止这种情况发生。将setlocal enabledelayedexpansion放在脚本顶部并echo !fileData!>test2.html

作为旁注,您可能会受益于batch script heredoc来编写HTML。如果您对JavaScript感到满意并且感觉冒险,那么通过在混合脚本中调用Windows Scripting Host方法也可以interact with the DOM

另一个注意事项:如果你

for /f "delims=" %%x in (template.html) do set fileData=%%x

fileData变量会在template.html中反复重置,直到它最终只包含最后一行。批量变量不能(轻松)包含多行。你需要在循环中进行处理,如下所示:

@echo off
setlocal enabledelayedexpansion
(
    for /f "delims=" %%x in (template.html) do (
        set "fileData=%%x"
        echo !fileData:search=replace!
    )
)>test2.html

答案 1 :(得分:0)

过去2个小时,我一直在为此苦苦挣扎,只是发现它可以在一行中完成:

 type file.html>>otherFile.html

据我所知,它应该与任何文件扩展名一起使用(只要使用type命令即可)。我不确定这是否完全满足您的需求,但这是将文件内容附加到另一个文件的一种很简洁的方法。 附注:如果我做错了,请不要判断我,我也是一批新手。