尝试使用批处理将HTML从一个文件复制到另一个文件

时间:2017-04-12 14:56:48

标签: batch-file

我正在通过Batch操作一些HTML,但即使我setlocal enableDelayedExpansion,它仍然不会传输标签。这是我的剧本:

@echo off
setlocal enableDelayedExpansion
del output.html
for /f "delims=" %%x in (file.html) do call :putLineInHTMLFile %%x
:putLineInHTMLFile
echo !%*!>> output.html

file.html包含:

<tag 1>
<tag 2>

运行脚本后,output.html包含:

ECHO is off.

P.S。:我想继续使用do call所以我对能够在不删除do call声明的情况下完成这项工作的答案感兴趣。

2 个答案:

答案 0 :(得分:1)

@echo off
setlocal enableDelayedExpansion
del output.html
for /f "delims=" %%x in (file.html) do (echo %%x>> output.html)

编辑:这是使用do call

的替代方案
@echo off
setlocal enabledelayedexpansion
del output.html
for /f "delims=" %%x in (file.html) do (set Blog="%%x"& call :DoIt)
goto :End
:DoIt
echo %Blog%>>output.html

:End

重新编辑:修复了我的第二个@Aacini回答。他的回答让我意识到%%x需要被"包围,而不是无用地分配给另一个var。

@echo off
setlocal enabledelayedexpansion
del output.html
for /f "delims=" %%x in (file.html) do (call :DoIt "%%x")
goto :End
:DoIt
echo %1>>output.html

:End

答案 1 :(得分:1)

@echo off
setlocal enableDelayedExpansion
del output.html
for /f "delims=" %%x in (file.html) do call :putLineInHTMLFile "%%x"
goto :EOF

:putLineInHTMLFile
set "line=%~1"
echo !line!>> output.html