bat读取文件内容

现有一个文件"ABCDEF.GHI",内容如下:ABC:DEFGHI:JKL求一个批处理,逐行读取文件内容,设置变量,变量名为冒号前内容,值为引号后内容,即:%ABC%=... 现有一个文件"ABC DEF.GHI",内容如下:
ABC:DEF
GHI:JKL
求一个批处理,逐行读取文件内容,
设置变量,变量名为冒号前内容,值为引号后内容,即:
%ABC%=DEF
%GHI%=JKL

求高手相助!
展开
 我来答
刺友互
高粉答主

2020-02-13 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:66.3万
展开全部

1、新建文件。

2、声明要打开的文件变量。

3、创建要打开的文件及内容并保存。

4、以只读方式打开文件并赋予变量。

5、读取文件的前三个字节并输出。

7、读取文件的所有内容并输出。

8、预览效果如图。

注意事项:

PS批处理是基于强大的图片编辑软件Photoshop的,用来批量处理图片的脚本;而DOS批处理则是基于DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的脚本。

albumin
推荐于2017-09-15 · TA获得超过1.2万个赞
知道大有可为答主
回答量:4889
采纳率:87%
帮助的人:2311万
展开全部
@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
)

关键是跳过最后一行需要预先计算行数,所以代码增加了不少

如果是跳过没冒号的行,或只跳过第一行就只要稍修改一下

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式