[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决] 批处理加字符文本编辑

本帖最后由 ht512 于 2013-11-5 17:26 编辑

各位大哥大姐们: 我想处理一堆文本 文本第19行都是类似于:KeyFilename=董存瑞.id 这样的姓名
姓名每个字中间都需要加一个间隔符 &

最后达到的效果为:KeyFilename=&董&存&瑞.id

我自己写了一段可以实现,但是太复杂了。能否实现直接输入整个姓名就可以修改呢?不用分三次输入 希望大哥大姐给修改一下呗
  1. @echo off&setlocal enabledelayedexpansion
  2. set /p var=请输入用户名:
  3. set /p var2=请输入用户名:
  4. set /p var3=请输入用户名:
  5. for /f "delims=" %%a in ('D:\123\ABC.ini"') do (
  6. set /a n+=1
  7. if !n! equ 1 (
  8. echo %%a>"GD:\123\ABC.ini"
  9. ) else (
  10. if !n! equ 19 (   
  11. echo KeyFilename=&%var%&%var2%&%var3%.id >>"D:\123\ABC.ini"
  12. ) else (
  13. echo.%%a>>"D:\123\ABC.ini"
  14. )
  15. )
  16. )
复制代码

本帖最后由 ht512 于 2013-11-5 16:49 编辑

回复 3# DAIC


  麻烦我想再问一下,如果同时修改
第20行内容为ABC=123
第21行内容为MON=456  
     该加什么代码  

另外如果名字是两个字如:张三
就变成 &张&三&三 了
期待解决办法

TOP

本帖最后由 ht512 于 2013-11-5 16:49 编辑

回复 2# foxJL


  麻烦我想再问一下,如果同时修改
第20行内容为ABC=123
第21行内容为MON=456  
     该加什么代码  

另外如果名字是两个字如:张三
就变成 &张&三&三 了
期待解决办法

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p var=请输入用户名:
  4. (for /f "delims=" %%a in (D:\123\ABC.ini) do (
  5.     set /a n+=1
  6.     if !n! equ 19 (
  7.         echo KeyFilename=^&%var:~0,1%^&%var:~1,1%^&%var:~2,1%.id
  8.     ) else (
  9.         echo,%%a
  10.     )
  11. ))>D:\123\ABC_new.ini
复制代码

TOP

给楼主一个示例
  1. @echo off
  2. set /p var=请输入用户名:
  3. echo,KeyFilename=^&%var:~,1%^&%var:~1,1%^&%var:~-1%.id
  4. pause
复制代码

TOP

返回列表