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

[文本处理] [已解决]求个批处理,在文本文件中第二行插入二行内容,并删除文中所有空格

本帖最后由 wbkl 于 2015-4-12 16:06 编辑

工作中需要写个批处理,能在文本文件中的第2行开始,插入2行内容,其它内容不能改动;并且还需要删除文中所有的空格。求助大婶啊
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 31# pcl_test


    我懂了,非常 感谢 。。。看来我还是用EXCEL吧,不过EXCEL本身也没有这样的函数,我也是网上找的别人自定义的函数。

TOP

本帖最后由 pcl_test 于 2015-4-15 15:37 编辑

回复 29# wbkl
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "skip=2 tokens=1,2* delims=~" %%a in ('type "测试A.txt"') do (
  4. set s=
  5. set t=
  6. set "name=%%b"
  7. set str=%%bfedcba9876543210
  8. set/a len=0x!str:~15,1! &set/a len-=1
  9. for /l %%x in (0 1 !len!) do (
  10. for /f "skip=2 tokens=1* delims=: " %%i in ('find "!name:~%%x,1!" %0') do (
  11. set "sm=%%j"
  12. if "!sm:~,2!" == "zh" (
  13. set sm=!sm:zh=Zh! &set "s=!s!!sm:~,2!"
  14. ) else if "!sm:~,2!" == "ch" (
  15. set sm=!sm:ch=Ch! &set "s=!s!!sm:~,2!"
  16. ) else if "!sm:~,2!" == "sh" (
  17. set sm=!sm:sh=Sh! &set "s=!s!!sm:~,2!"
  18. ) else (
  19. for %%t in (bB pP mM fF dD tT nN lL gG kK hH jJ qQ xX rR zZ cC sS yY wW) do (
  20. set "t=%%t"
  21. if "!t:~,1!" == "!sm:~,1!" set "sm=!t:~1,1!" &set "s=!s!!sm:~,1!"
  22. ))))
  23. echo,%%a~~%%b~~!s!~~%%c
  24. )
  25. pause
  26. ::张 zhang
  27. ::三 san
  28. ::李 li
  29. ::四 si
  30. ::王 wang
  31. ::五 wu
  32. ::马 ma
  33. ::六 liu
  34. ::赵 zhao
  35. ::七 qi
  36. ::杨 yang
  37. ::八 ba
  38. ::孙 sun
  39. ::九 jiu
  40. ::吴 wu
  41. ::十 shi
复制代码

TOP

回复 29# wbkl
批处理可以做到,不过要制作一个标有全部汉字和拼音的txt,用查表法可以实现,难的是要有这样一个txt

TOP

回复 28# pcl_test



    不好意思,白天的时候上班太忙了没来得及回复 。
    就像这样的文件,需要在第二列的后面,插入第三列,这第三列是获取第二列的简码,也就是文字拼音的声母大写。

TOP

回复 27# wbkl

把样文先发上来看看

TOP

回复 22# pcl_test


    大婶,你看看 可能实现,不用帮写的,我只是想知道能不能实现;

TOP

回复 22# pcl_test


    大婶,我早前遇到个问题一直没搜到过答案,想请教一下批处理能不能实现:在一个文本文件中的第二列(全是文字或是空的)后插入一列,然后插入的列生成的是第二列的简码(就是获取每个中文的声母),文本有2种格式,一种是6列,一种是9列,每列中间都有2个分隔符~~

这个问题后来一直没找到过答案,感觉批处理可能不太能实现,所以无奈最后我一直在用EXCEL自义的函数在一个一个替换,一直做到现在

TOP

回复 23# apang


    谢谢,不过这个没用啊,没试出来效果。。。

TOP

回复 22# pcl_test


    谢谢,由于B.txt中第2行插入的和A.txt中不一样,我还是自己修改了一下,可以达到效果了。。。非常感谢!以后要加强学习了。

TOP

本帖最后由 apang 于 2015-4-12 18:13 编辑
  1. @echo off
  2. for /f "delims=" %%a in (a.txt) do (
  3.         set "s=%%a"
  4.         setlocal enabledelayedexpansion
  5.         echo,!s: =!
  6.         endlocal
  7.         if not defined a if defined b (
  8.                 echo,1
  9.                 echo,2
  10.                 set a=1
  11.         ) else set b=1
  12. )
  13. pause
复制代码

TOP

本帖最后由 pcl_test 于 2015-4-12 17:24 编辑

回复 21# wbkl
  1. @echo off & setlocal enabledelayedexpansion
  2. for %%i in ("a.txt" "b.txt") do (
  3. set n=1
  4. (for /f "delims=" %%a in ('type %%i') do (
  5. set "str=%%a"
  6. if %%i == "a.txt" set "str=!str: =!"
  7. echo,!str!
  8. if !n! == 2 (
  9. echo,添加内容1
  10. echo,添加内容2
  11. )
  12. set/a n+=1
  13. ))>$
  14. move $ "%%i"
  15. )
  16. pause
复制代码

TOP

回复 20# pcl_test


    我试了是可以的,我还以为 可以再简化一下代码呢。

TOP

回复 19# wbkl
you can try

TOP

回复 17# pcl_test


    这样可对?

TOP

返回列表