2017-04-12 58 views
0

我操縱一些HTML通過批處理,但即使我setlocal enableDelayedExpansion,它仍然不會傳送標籤。這是我的腳本:試圖從一個文件複製HTML到另一個批量使用

@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. 

PS:我想用do call保持所以我對這個工作沒有刪除do call聲明的答案感興趣。

回答

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 
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 
+0

你可以改變你的答案,以便它使用'做call'? :) – Axonn

+1

添加了「do call」選項。 –

+0

實際上,第二種解決方案在引號之間輸出標籤:)。 Aacini的答案是因爲他在那裏有額外的一套。如果我在這個網站上修改了一件事情,那麼至少可以給一個即使不是完整解決方案的人提供儘可能多的分數的能力。感謝您的時間和精力! :) – Axonn

相關問題