标题: [文本处理] 【已解决】批处理如何手动修改文本指定行的内容? [打印本页]
作者: ht512 时间: 2013-11-5 17:38 标题: 【已解决】批处理如何手动修改文本指定行的内容?
本帖最后由 ht512 于 2013-11-7 12:55 编辑
各位大哥大姐们:
首先感谢 @foxJL , @DAIC 的帮忙,刚才帖子没有描述清楚
我想处理一堆文本
文本第19行都是类似于:KeyFilename=董存瑞.id 或 KeyFilename=王五.id 或 KeyFilename=欧阳大哥.id
文本第20行都是类似于:COD=董存瑞.id 或 COD=王五.id 或 COD=欧阳大哥.id
文本第25行都是类似于:MON=董存瑞.id 或 COD=王五.id 或 COD=欧阳大哥.id
姓名每个字中间都需要加一个间隔符 &
最后达到的效果为:KeyFilename=&董&存&瑞.id 或 KeyFilename=&王&五.id 或 KeyFilename=&欧&阳&大&哥.id
COD=&董&存&瑞.id 或 COD=&王&五.id 或 COD=&欧&阳&大&哥.id
MON=&董&存&瑞.id 或 COD=&王&五.id 或 COD=&欧&阳&大&哥.id
能否实现直接输入整个姓名就可以修改呢?不用分几次单字次输入 希望大哥大姐帮帮忙。在一个批处理里同时修改19~20~25行的内容
拜托了!- @echo off&setlocal enabledelayedexpansion
- set /p var=请输入用户名:
- set /p var2=请输入用户名:
- set /p var3=请输入用户名:
- for /f "delims=" %%a in ('D:\123\ABC.ini"') do (
- set /a n+=1
- if !n! equ 1 (
- echo %%a>"GD:\123\ABC.ini"
- ) else (
- if !n! equ 19 (
- echo KeyFilename=&%var%&%var2%&%var3%.id >>"D:\123\ABC.ini"
-
- ) else (
-
- echo.%%a>>"D:\123\ABC.ini"
- )
- )
- )
复制代码
作者: apang 时间: 2013-11-5 18:46
- @echo off&setlocal enabledelayedexpansion
- for %%a in ("_19=KeyFilename" "_20=COD" "_25=MON") do set "%%~a"
- set /p Name=输入第19、20、25行姓名,用空格隔开:
- for /f "tokens=1-3" %%a in ("%Name%") do (
- set "a=%%a" & set "b=%%b" & set "c=%%c"
- )
- for /l %%i in (0 1 10) do (
- if "!a:~%%i!" neq "" set "#19=!#19!&!a:~%%i,1!"
- if "!b:~%%i!" neq "" set "#20=!#20!&!b:~%%i,1!"
- if "!c:~%%i!" neq "" set "#25=!#25!&!c:~%%i,1!"
- )
-
- pushd "D:\123\"
- for /f "delims=" %%i in ('dir /a-d /b *.ini') do (
- set "n="
- (for /f "usebackq delims=" %%a in ("%%i") do (
- set /a n+=1
- if defined _!n! (
- for %%b in (!n!) do echo,!_%%b!=!#%%b!.id
- ) else echo,%%a
- ))>"New_%%i"
- )
- pause
复制代码
作者: xybzm 时间: 2013-11-5 18:58
谢谢你的分享,学习了。
作者: foxJL 时间: 2013-11-5 21:07
本帖最后由 foxJL 于 2013-11-5 21:30 编辑
- @echo off & setlocal enabledelayedexpansion
- set/p user=请输入用户名:
- for /l %%i in (0,1,10) do (if not "!user:~%%i!"=="" set "user_2=!user_2!^&!user:~%%i,1!")
- for /f "delims=" %%a in ('dir /b /a-d *.ini') do (
- set "n="
- for /f "usebackq delims=" %%i in ("%%a") do (
- set/a n+=1 & set "flag=1"
- if !n! equ 19 (echo,KeyFilename=!user_2!&set "flag=")
- if !n! equ 20 (echo,COD=!user_2!&set "flag=")
- if !n! equ 25 (echo,MON=!user_2!&set "flag=")
- if defined flag (echo,%%i)
- )>>%%~na_2.ini
- )
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |