我想把文件的第3、6行整行分别赋值给变量patch和patch2
我这么写:
@echo off&setlocal enabledelayedexpansion
set v1=patch
set v2=patch2
set i=1
for /f %%i in (info.ini) do call,set %%v!i!%%=%%i&set/ai+=1
这样只能将第一、第二行赋值给patch和patch2,求怎么做到把文件的第3、6行整行分别赋值给变量patch和patch2?
Cmd如何将文件内容赋值给变量
答案:2 悬赏:60 手机版
解决时间 2021-02-23 00:55
- 提问者网友:最美的风景
- 2021-02-22 12:20
最佳答案
- 五星知识达人网友:污到你湿
- 2021-02-22 13:53
@echo off&setlocal enabledelayedexpansion
set v1=patch
set v2=patch2
set i=1
for /f %%i in (info.ini) do (
if !i! equ 3 set !v1!=%%i
if !i! equ 6 set !v2!=%%i
set /a i+=1
)
echo !%v1%!
echo !%v2%!
pause
set v1=patch
set v2=patch2
set i=1
for /f %%i in (info.ini) do (
if !i! equ 3 set !v1!=%%i
if !i! equ 6 set !v2!=%%i
set /a i+=1
)
echo !%v1%!
echo !%v2%!
pause
全部回答
- 1楼网友:何以畏孤独
- 2021-02-22 15:30
这是因为批处理的预处理机制照成的。
批处理预处理的过程:
1.将set a=4读入内容,发现set命令,将a赋值为4
2.接着预读set a=5 & echo %a%,发现%a%,将%a%直接扩展,也就是替换成上面的a=4,然后才会运行命令set命名,将a赋值5,你需要开启延迟变量,让变量知道变量已经变化了。方法:@echo off&setlocal enabledelayedexpansion
set a=4
set a=5 & echo %a%
pause
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯