新手求解:批处理call时传递值问题
主要是想替换配置文件中指定配置项的值但第一个for中else(call:next%%a)传递值失败,打印出来只有zhangsan、lisi这些配置项,后面的值都丢了其实两...
主要是想替换配置文件中指定配置项的值
但第一个for中else (call :next %%a)传递值失败,打印出来只有zhangsan、lisi这些配置项,后面的值都丢了
其实两个for嵌套一起问题就解决了,但还是想知道为啥传值失败
配置文件格式:
#zhangsan
zhangsan = woman
#lisi
lisi = man
代码如下:
del /q 123.txtnew
set root=e:
set dir=E:\test\
set filename=123.txt
set porperties=zhangsan
set value=man
%root%
cd %dir%
for /f "delims=" %%a in (%filename%) do (
if "%%a:~0,1"=="#" (echo %%a >> %filename%new) else (call :next %%a)
)
:next
echo 输出:%1 >> %filename%new
for /f "tokens=1,* delims== " %%i in ("%1") do (
if "%%i"=="%porperties%" (echo %%i=%value% >> %filename%new) else (echo %%i=%%j >> %filename%new)
) 展开
但第一个for中else (call :next %%a)传递值失败,打印出来只有zhangsan、lisi这些配置项,后面的值都丢了
其实两个for嵌套一起问题就解决了,但还是想知道为啥传值失败
配置文件格式:
#zhangsan
zhangsan = woman
#lisi
lisi = man
代码如下:
del /q 123.txtnew
set root=e:
set dir=E:\test\
set filename=123.txt
set porperties=zhangsan
set value=man
%root%
cd %dir%
for /f "delims=" %%a in (%filename%) do (
if "%%a:~0,1"=="#" (echo %%a >> %filename%new) else (call :next %%a)
)
:next
echo 输出:%1 >> %filename%new
for /f "tokens=1,* delims== " %%i in ("%1") do (
if "%%i"=="%porperties%" (echo %%i=%value% >> %filename%new) else (echo %%i=%%j >> %filename%new)
) 展开
启帆信息
2024-11-19 广告
2024-11-19 广告
启帆信息是英伟达中国区代理商,原厂授权代理,提供全面的软件技术解决方案以及NVIDIA以太网产品、交换机等产品,欢迎前来咨询!...
点击进入详情页
本回答由启帆信息提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询