bat读取文件内容
现有一个文件"ABCDEF.GHI",内容如下:ABC:DEFGHI:JKL求一个批处理,逐行读取文件内容,设置变量,变量名为冒号前内容,值为引号后内容,即:%ABC%=...
现有一个文件"ABC DEF.GHI",内容如下:
ABC:DEF
GHI:JKL
求一个批处理,逐行读取文件内容,
设置变量,变量名为冒号前内容,值为引号后内容,即:
%ABC%=DEF
%GHI%=JKL
求高手相助! 展开
ABC:DEF
GHI:JKL
求一个批处理,逐行读取文件内容,
设置变量,变量名为冒号前内容,值为引号后内容,即:
%ABC%=DEF
%GHI%=JKL
求高手相助! 展开
展开全部
@echo off
set "file=ABC DEF.GHI"
for /f "usebackq tokens=1* delims=:" %%a in ("%file%") do (
set "%%a=%%b"
)
for /f "usebackq delims=:" %%a in ("%file%") do set %%a
按行读取ABC DEF.GHI文件,设置变量,最后一行显示已经设置的变量
追问
程序真的很好用,谢谢你!
不过应用时发现一个新问题:能否跳过文件的第一行和最后一行?
如果可以做到,我会多加10财富值的。
追答
@echo off&setlocal enabledelayedexpansion
set "file=ABC DEF.GHI"
set n=0
set m=0
for /f "skip=1 usebackq tokens=1* delims=:" %%a in ("%file%") do set /a n+=1
for /f "skip=1 usebackq tokens=1* delims=:" %%a in ("%file%") do (
set /a m+=1
if !m! LSS !n! set "%%a=%%b"
)
set m=0
for /f "skip=1 usebackq delims=:" %%a in ("%file%") do (
set /a m+=1
if !m! LSS !n! set %%a
)
关键是跳过最后一行需要预先计算行数,所以代码增加了不少
如果是跳过没冒号的行,或只跳过第一行就只要稍修改一下
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询