Windowsバッチファイルを使用して構成ファイルを書き直そうとしています。 ファイルの行をループして、指定した改行で置き換えたい行を探しています。 Windowsバッチを使用して出力ファイルに二重引用符を含む文字列のエコー
は、私は、ファイル:AddText %1 %2
set Text=%~1%
set NewLine=%~2%
echo "%Text%" | findstr /C:"%markerstr%" 1>nul
if errorlevel 1 (
if not "%Text%" == "" (
setlocal EnableDelayedExpansion
(
echo !Text!
) >> outfile.txt
) else (
echo. >> outfile.txt
)
) else (
set NewLine=%NewLine"=%
setlocal EnableDelayedExpansion
(
echo !NewLine!
) >> outfile.txt
)
exit /b
%テキスト%が埋め込まれた二重引用符付き文字列であるときに問題があるに行を書き込み「機能」を持っています。 それは失敗します。可能性としてはそれも失敗する原因となる他の文字があります。 これを設定ファイル内のすべてのテキストで処理できるようにするにはどうすればよいですか?
(発言も出力で外部囲む二重引用符を生成します第二ライン)バッチを使用しないでください - powershellまたはvbscript、または別のスクリプト言語を使用してください。 –
それは素晴らしいことですが、私は本当にそれをオプションとして持っていません。 –
実際には、エコーに二重引用符が埋め込まれているようです。echo%Text%| findstr/C: "%markerstr%" 1> nul –