既存の A.bat :
rem set variable pathVariable to appropriate value
set pathVariable=../Doc/English/MyDoc.htm
rem asd
B.bat から、pathVariable の値をスペースを含むパスで更新する必要がありますが、スペースを %20 に置き換えた後、B.bat を実行すると、A.bat は次のようになります。
rem set variable pathVariable to appropriate value
set pathVariable=C:/Program%20Files/XXX%20YYY/MyDoc.htm
rem asd
私はこれで遊んでみましたが、書くことができました
@echo off
setlocal enabledelayedexpansion
set inputFile=A.bat
set outputFile=A_New.bat
set pathVar=../Doc/English/MyDoc.htm
set newPathVarSpace=C:/Program Files/XXX YYY/MyDoc.htm
set space=%%20
set newPathVarNoSpace=%newPathVarSpace: =!space!%
echo %newPathVarNoSpace%
for /f "tokens=1,* delims=" %%A in ( '"type %inputFile%"') do (
SET line=%%A
rem SET modified=!string:%pathVar%=%newPathVarSpace%!
SET modifiedLine=!line:%pathVar%=%newPathVarNoSpace%!
echo !modifiedLine! >> %outputFile%
)
スクリプトは機能しますが、保存したい空白行をすべて食べてしまいます。ご協力いただきありがとうございます。