我承认,除了基本的东西之外,我在编写DOS批处理脚本方面从来都不是那么擅长。 我需要编写一个脚本来读取HTML模板文件并从中创建一个新文件......现在我可以使用以下命令将文件读入变量:
for /f "delims=" %%x in (template.html) do set fileData=%%x
我可以回显变量,看看html数据在那里。 但是当我尝试使用以下方法写出来时
echo %fileData%>test2.html
我收到错误:
系统找不到指定的文件。
我不确定它是否与包含混淆输出到文件的html标签的变量有关?
答案 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命令即可)。我不确定这是否完全满足您的需求,但这是将文件内容附加到另一个文件的一种很简洁的方法。 附注:如果我做错了,请不要判断我,我也是一批新手。