使用另一个批处理批处理文件中的变量值

时间:2015-05-04 14:59:06

标签: windows batch-file cmd edit string-substitution

现有的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%
)

脚本可以正常工作,但它会吃掉我想要保留的所有空白行。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

尝试以下代码 -

<强> A.BAT

$('<iframe id="someId"/>').appendTo('#someDiv').contents().find('body').append(response);

<强> B.BAT

rem set variable pathVariable to appropriate value.
pathVariable=C:\Test

现在转到@echo off setlocal enableextensions disabledelayedexpansion set "config=.\A.bat" set "path=C:\Batch projects\Batch tests\bin\Debug App" for /f "tokens=*" %%l in ('type "%config%"^&cd.^>"%config%"' ) do for /f "tokens=1 delims== " %%a in ("%%~l" ) do if /i "%%~a"=="pathVariable" ( >>"%config%" echo(pathVariable=%path% ) else ( >>"%config%" echo(%%l ) type "%config%" endlocal ,用记事本打开它并检查pathVariable Value,如下所示 -

A.BAT