如何用CMD读写INI文件

yin2099 2012-01-28 01:55:06
我有一个INI文件:config.ini
[Common]
ITEM1=ITEM_1
ITEM2=ITEM_2
ITEM3=ITEM_3

1.我想读[Common]ITEM2的值,
2.重写[Common]ITEM2的值为"test2"
要怎么写这个bat文件呀
...全文
1072 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
s11ss 2012-01-29
  • 打赏
  • 举报
回复
掉了一句,再发一次:
[code=BatchFile]@echo off & setlocal enabledelayedexpansion
set "f="
set "i="
for /f "delims=" %%a in (config.ini) do (
set v=%%a
if "!v:~0,1!"=="[" (
if %%a==[Common] (set f=1) else (set "f=")
) else (
if defined f (
for %%b in (%%a) do (
if %%b==ITEM2 (set f=2) else (if !f!==2 set i=%%b&&goto readover)
)
)
)
)

:readover
if defined i (echo ITEM2=%i%)

set "f="
(for /f "delims=" %%a in (config.ini) do (
set v=%%a
if "!v:~0,1!"=="[" (
if %%a==[Common] (set f=1) else (set "f=")
echo.%%a
) else (
if defined f (
if defined i (
if "%%a"=="ITEM2=%i%" (echo ITEM2=test2) else echo.%%a
) else (
set "f="
echo.%%a
echo ITEM2=test2
)
) else echo.%%a
)
))>config.ini2

move config.ini2 config.ini
pause[/code]
s11ss 2012-01-29
  • 打赏
  • 举报
回复
注意:在写ini时,会清除空行和注释行。
[code=BatchFile]@echo off & setlocal enabledelayedexpansion
set "f="
set "i="
for /f "delims=" %%a in (config.ini) do (
set v=%%a
if "!v:~0,1!"=="[" (
if %%a==[Common] (set f=1) else (set "f=")
) else (
if defined f (
for %%b in (%%a) do (
if %%b==ITEM2 (set f=2) else (if !f!==2 set i=%%b&&goto readover)
)
)
)
)

:readover
if defined i (echo ITEM2=%i%)

set "f="
(for /f "delims=" %%a in (config.ini) do (
set v=%%a
if "!v:~0,1!"=="[" (
if %%a==[Common] (set f=1) else (set "f=")
echo.%%a
) else (
if defined f (
if defined i (
if "%%a"=="ITEM2=%i%" (echo ITEM2=test2) else echo.%%a
) else (
set "f="
echo ITEM2=test2
)
) else echo.%%a
)
))>config.ini2

move config.ini2 config.ini
pause[/code]
yin2099 2012-01-29
  • 打赏
  • 举报
回复
虽然看不懂,但是很管用,谢谢!!!!!!!!!
Mirs 2012-01-28
  • 打赏
  • 举报
回复
VB很多这样的列子
PB375 U盘读写汇编程序 性价比超高的U盘读写模块-PB375,兼容CH375读写操作 1. 功能 ● 用于嵌入式系统/单片机读写U 盘、闪盘、闪存盘、USB 移动硬盘、USB 读卡器等。 ● 支持符合USB 相关规范基于Bulk-Only 传输协议的各种U 盘/闪存盘/外置硬盘。 ● 支持文件系统FAT12 和FAT16 及FAT32 ● 文件操作功能:新建、删除、读写数据,打开关闭文件等。 ● SPI接口,支持3.3V电平 ● 兼容CH375模块的操作命令 ● 单芯片解决方案,该模块只需要一个主控芯片外加少量的电容电阻便可,相对于51MCU+SL811/CH375的模块,无论模块尺寸还是成本都有着极大的优势。 ● 可以是模块提供,也可以是芯片提供(只需要简单的几个外围元件就可以了) 具体参数可以下载数据手册或者联系销售人员 基本不需要占用单片机系统的存储空间,最少只需要几个字节的RAM 和几百字节的代码。 下面就是一个很通用的台湾的单片机(可以是holtek 松翰 义隆 富晶等)用汇编操作PB375实现读写操作U盘的代码: USB_FAIL EQU 0AAH USB_SUCC EQU 055H TRY_TIMES EQU 0FFH CMD_DiskReady EQU 071H CMD_FileCreate EQU 065H CMD_ByteWrite equ 07Ch CMD_FileClose equ 067h //设置SPI 端口的输入输出 spi_ini: nop call i2c_delay b0bset spi_sdo_mod b0bset spi_sck_mod b0bset spi_cs_mod b0bclr spi_sdi_mod b0bset spi_cs ;not chose b0bset spi_sck b0bclr spi_sdo b0bclr spi_sdi ret /************************ SPI发一个字节,同时读一个字节 *************************/ spi_send: nop clr epr_num clr spi_in b0bclr spi_sck spi_write_bit: b0bts0 epr_data_b jmp spi_write_h b0bclr spi_sdo jmp spi_read_com spi_write_h: b0bset spi_sdo spi_read_com: call i2c_delay b0bclr fc rlcm spi_in b0bts0 spi_sdi incms spi_in b0bclr fc b0bset spi_sck call i2c_delay b0bclr spi_sck ;sck=0,data variable call i2c_delay rlcm epr_data ;prepare for next incms epr_num nop b0bts1 epr_num_b jmp spi_write_bit call i2c_delay ret //发送命令 spi_send_command: b0bclr spi_cs b0mov rbank,#1 ; 写入命令码 mov a,cmd b0mov rbank,#0 b0mov epr_data,a call spi_send b0mov rbank,#1 ;写入后续参数的长度 mov a,len b0mov rbank,#0 b0mov epr_data,a call spi_send b0mov rbank,#1 ;写入后续参数 mov a,len b0mov rbank,#0 b0bts0 FZ jmp send_len_over ;len=0 b0mov temp,a b0mov Y,#1 b0mov Z,#sendbuf send_len_byte: b0mov a,@YZ b0mov rbank,#0 b0mov epr_data,a call spi_send b0mov rbank,#0 incms Z nop decms temp jmp send_len_byte send_len_over: b0bset spi_cs call i2c_delay ;check the status mov a,#TRY_TIMES b0mov rbank,#1 mov trytime,a check_status: b0mov rbank,#0 b0bclr spi_cs mov a,#0ffh b0mov epr_data,a call spi_send b0bset spi_cs call i2c_delay b0mov a,spi_in sub a,#0ffh b0bts0 FZ jmp wait_1ms ;模块操作尚未完成 b0mov a,spi_in sub a,#00h b0bts0 FZ jmp succ_quit_00 ;操作成功 fail_quit: b0bset spi_cs mov a,#USB_FAIL b0mov rbank,#1 mov usb_reslt,a b0mov rbank,#0 ret wait_1ms: //延时 b0mov z,#0f7h b0mov y,#0e3h ;稳定oscillator,40ms delay_ms_02: b0bset fwdrst nop nop incms z jmp delay_ms_02 nop incms y jmp delay_ms_02 b0mov rbank,#1 decms trytime jmp check_status jmp fail_quit succ_quit_00: b0mov rbank,#0 b0bclr spi_cs mov a,#00h b0mov epr_data,a call spi_send b0mov a,spi_in b0bts0 FZ jmp succ_quit b0mov temp,a b0mov Y,#1 b0mov Z,#recvbuf read_len_byte: mov a,#0 b0mov rbank,#0 b0mov epr_data,a call spi_send b0mov a,spi_in b0mov @YZ,a b0mov rbank,#0 incms Z nop decms temp jmp read_len_byte succ_quit: b0bset spi_cs mov a,#USB_succ b0mov rbank,#1 mov usb_reslt,a b0mov rbank,#0 ret testusb://测试主程序 call spi_ini //初始化spi b0mov rbank,#1 //发送U盘是否连接好命令 mov a,#CMD_DiskReady mov cmd,a mov a,#0 mov len,a b0mov rbank,#0 call spi_send_command b0mov rbank,#1 mov a,usb_reslt b0mov rbank,#0 sub a,#USB_succ b0bts1 FZ ret ;ok diskread ;sendbuf is 92+”TEST.DAT” //创建文件”TEST.DAT” b0mov rbank,#0 b0mov Y,#1 b0mov Z,#sendbuf mov a,#92 b0mov @yz,a incms Z mov a,#116 b0mov @yz,a incms Z mov a,#101 b0mov @yz,a incms Z mov a,#115 b0mov @yz,a incms Z mov a,#116 b0mov @yz,a incms Z mov a,#46 b0mov @yz,a incms Z mov a,#100 b0mov @yz,a incms Z mov a,#97 b0mov @yz,a incms Z mov a,#116 b0mov @yz,a incms Z b0mov rbank,#1 mov a,#CMD_FileCreate //创建文件命令 mov cmd,a mov a,#10 mov len,a b0mov rbank,#0 call spi_send_command b0mov rbank,#1 mov a,usb_reslt b0mov rbank,#0 sub a,#USB_succ b0bts1 FZ ret b0mov rbank,#0 b0mov Y,#1 b0mov Z,#sendbuf mov a,#19 b0mov @yz,a incms Z mov a,#33 b0mov @yz,a incms Z mov a,#34 b0mov @yz,a incms Z mov a,#35 b0mov @yz,a incms Z mov a,#36 b0mov @yz,a incms Z mov a,#37 b0mov @yz,a incms Z mov a,#38 b0mov @yz,a incms Z mov a,#39 b0mov @yz,a incms Z mov a,#40 b0mov @yz,a incms Z mov a,#41 b0mov @yz,a b0mov rbank,#1 mov a,#CMD_ByteWrite //写入数据 mov cmd,a mov a,#10 mov len,a b0mov rbank,#0 call spi_send_command b0mov rbank,#1 mov a,#CMD_FileClose //关闭文件 mov cmd,a mov a,#1 mov len,a b0mov rbank,#0 call spi_send_command ret 欢迎垂询 电话:075529739852 地址:深圳市南山区高新中四道30号龙泰利大厦306 http://www.chinamcu.com

18,141

社区成员

发帖
与我相关
我的任务
社区描述
Windows客户端使用相关问题交流社区
社区管理员
  • Windows客户端使用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧