2017-04-12 18 views
0

バッチでHTMLを操作していますが、setlocal enableDelayedExpansionにもかかわらずタグはまだ転送されません。バッチを使用して1つのファイルから別のファイルに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に無駄に割り当てられるのではなく、"で囲まれている必要があることを認識させました。 `call`ん、それは使用するように

@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

あなたはあなたの答えを変更することはできますか? :) – Axonn

+1

'do call'の代替を追加しました。 –

+0

実際、2番目のソリューションはタグを引用符で囲んで出力します:)。 Aaciniの答えは彼がそこに持っている余分なセットのために働く。もし私がこのウェブサイトで修正したいと思うものがあれば、完全な解決策ではないとしても、答える人に少なくとも多くのポイントを与える能力があります。あなたの時間と努力をありがとう! :) – Axonn

関連する問題