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

[文本处理] [已解决]如何用批处理转换文件格式?

c盘 文件夹ccc  下有 模式01.flt   模式02.flt   模式03.flt。。。。。模式1000.flt  数量不等的flt文件

如何将这些文件 转换成 号码匹配过滤01.mod   号码匹配过滤02.mod   号码匹配过滤03.mod。。。。号码匹配过滤1000.mod 的格式

flt文件
mod文件 可以用记事本打开

把里面的内容

[过滤]
号码匹配过滤=E|2-3;26 12 32 22 14 07 31 01 15 30 13 25 21 19 24 03 08 02 :1,2,3,4,5;29 12 32 22 33 19 23 17 09 05 15 07 08 10 14 24 04 27 :1,2,3,4,5;。。。。。。。。。。
改成

E|2-3
26 12 32 22 14 07 31 01 15 30 13 25 21 19 24 03 08 02 :1,2,3,4,5
29 12 32 22 33 19 23 17 09 05 15 07 08 10 14 24 04 27 :1,2,3,4,5
09 18 17 13 21 29 22 04 27 07 08 10 15 20 31 32 16 02 :1,2,3,4,5
04 14 24 10 20 12 05 15 31 02 03 21 30 01 23 32 26 28 :1,2,3,4,5
08 31 05 07 01 22 10 18 14 15 19 11 13 02 27 33 03 09 :1,2,3,4,5
18 21 03 08 10 28 01 19 13 24 33 26 12 27 09 07 31 29 :1,2,3,4,5
25 31 30 05 16 08 09 14 06 01 20 17 10 29 07 27 03 21 :1,2,3,4,5
15 24 09 32 18 02 05 19 07 21 11 22 27 25 13 28 30 01 :1,2,3,4,5
24 08 09 07 04 32 12 21 28 10 13 06 27 11 26 03 15 01 :1,2,3,4,5
。。。。。。。。

请各位高手看看代码怎么写  谢谢各位老师了
1

评分人数

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

  1. @Echo Off
  2. Ren *.flt *.mod
  3. Ren 模式* 号码匹配过滤*
复制代码
1

评分人数

    • CrLf: 好像不大对嘿PB + 5
一路飘过的鸟~~~

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('dir /b *.flt') do (
  4.     set newname=%%~na
  5.     set newname=!newname:模式=号码匹配过滤!
  6.     ren "%%a" "!newname!.mod"
  7. )
复制代码
1

评分人数

    • CrLf: 乐于助人技术 + 1

TOP

谢谢 各位老师

还有个问题 如何修改里面的内容呢

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. cd/d "c:\ccc"
  3. for /f "delims=" %%i in ('dir/b 模式*.flt')do (
  4.    echo %%i
  5.    set "nf=%%~ni"
  6.    set "nf=!nf:模式=号码匹配过滤!"
  7.    (for /f "delims=号码匹配过滤=" %%j in ('type "%%i"^|find /v "["')do (
  8.       set "h=%%j"
  9.       set "h=!h:;=";"!"
  10.       for %%k in ("!h!")do echo;%%~k
  11. ))>"!nf!.mod")
  12. pause
复制代码
1

评分人数

    • CrLf: 乐于助人技术 + 1

TOP

谢谢老师

不知道为什么 只结果运行了一半

E|2-3
26 12 32 22 14 07 31 01 15 30 13 25 21 19 24 03 08 02 :1,2,3,4,5
29 12 32 22 33 19 23 17 09 05 15 07 08 10 14 24 04 27 :1,2,3,4,5
09 18 17 13 21 29 22 04 27 07 08 10 15 20 31 32 16 02 :1,2,3,4,5
04 14 24 10 20 12 05 15 31 02 03 21 30 01 23 32 26 28 :1,2,3,4,5
08 31 05 07 01 22 10 18 14 15 19 11 13 02 27 33 03 09 :1,2,3,4,5
18 21 03 08 10 28 01 19 13 24 33 26 12 27 09 07 31 29 :1,2,3,4,5
25 31 30 05 16 08 09 14 06 01 20 17 10 29 07 27 03 21 :1,2,3,4,5
15 24 09 32 18 02 05 19 07 21 11 22 27 25 13 28 30 01 :1,2,3,4,5
24 08 09 07 04 32 12 21 28 10 13 06 27 11 26 03 15 01 :1,2,3,4,5
17 32 12 19 24 01 23 25 02 18 09 27 30 03 15 29 26 10 :1,2,3,4,5
18 16 30 22 15 14 13 03 25 19 21 02 10 26 06 23 24 17 :1,2,3,4,5
12 18 16 33 07 05 29 20 31 14 11 02 22 23 17 21 30 15 :1,2,3,4,5
27 01 04 11 29 06 17 21 32 03 26 24 14 33 09 10 19 02 :1,2,3,4,5
03 27 12 04 29 13 19 33 15 11 14 22 08 26 23 30 01 20 :1,2,3,4,5
21 05 15 04 19 11 06 22 03 13 28 09 31 02 16 20 26 08 :1,2,3,4,5
10 02 03 16 12 06 13 08 20 26 25 31

应该是这样的
E|2-3
26 12 32 22 14 07 31 01 15 30 13 25 21 19 24 03 08 02 :1,2,3,4,5
29 12 32 22 33 19 23 17 09 05 15 07 08 10 14 24 04 27 :1,2,3,4,5
09 18 17 13 21 29 22 04 27 07 08 10 15 20 31 32 16 02 :1,2,3,4,5
04 14 24 10 20 12 05 15 31 02 03 21 30 01 23 32 26 28 :1,2,3,4,5
08 31 05 07 01 22 10 18 14 15 19 11 13 02 27 33 03 09 :1,2,3,4,5
18 21 03 08 10 28 01 19 13 24 33 26 12 27 09 07 31 29 :1,2,3,4,5
25 31 30 05 16 08 09 14 06 01 20 17 10 29 07 27 03 21 :1,2,3,4,5
15 24 09 32 18 02 05 19 07 21 11 22 27 25 13 28 30 01 :1,2,3,4,5
24 08 09 07 04 32 12 21 28 10 13 06 27 11 26 03 15 01 :1,2,3,4,5
17 32 12 19 24 01 23 25 02 18 09 27 30 03 15 29 26 10 :1,2,3,4,5
18 16 30 22 15 14 13 03 25 19 21 02 10 26 06 23 24 17 :1,2,3,4,5
12 18 16 33 07 05 29 20 31 14 11 02 22 23 17 21 30 15 :1,2,3,4,5
27 01 04 11 29 06 17 21 32 03 26 24 14 33 09 10 19 02 :1,2,3,4,5
03 27 12 04 29 13 19 33 15 11 14 22 08 26 23 30 01 20 :1,2,3,4,5
21 05 15 04 19 11 06 22 03 13 28 09 31 02 16 20 26 08 :1,2,3,4,5
10 02 03 16 12 06 13 08 20 26 25 31 28 01 09 19 22 14 :1,2,3,4,5
31 16 10 01 12 03 26 07 15 21 32 24 30 09 13 06 04 17 :1,2,3,4,5
14 32 18 26 06 03 08 30 09 29 05 11 07 02 31 15 17 25 :1,2,3,4,5
26 15 12 01 10 07 03 30 02 28 11 32 06 24 14 33 31 23 :1,2,3,4,5
11 09 02 04 06 29 23 07 19 03 17 30 27 15 32 28 10 20 :1,2,3,4,5
04 22 28 06 11 26 12 05 24 16 21 25 32 31 20 09 23 08 :1,2,3,4,5
12 21 15 22 03 05 25 20 29 24 09 02 07 19 16 18 26 32 :1,2,3,4,5
09 29 25 24 06 22 17 11 26 02 23 28 30 21 04 31 15 20 :1,2,3,4,5
30 31 24 28 20 17 08 04 33 29 26 06 10 27 02 14 01 32 :1,2,3,4,5
29 12 06 15 02 04 26 01 08 10 17 32 13 20 11 31 19 28 :1,2,3,4,5
11 01 24 03 17 05 20 26 29 18 23 14 15 32 30 33 21 07 :1,2,3,4,5
02 14 25 11 05 28 21 31 29 19 23 07 33 10 03 30 27 15 :1,2,3,4,5
18 12 25 06 21 28 31 32 11 15 01 07 09 30 03 26 08 19 :1,2,3,4,5
23 24 27 10 30 29 19 08 11 04 33 26 17 20 05 25 31 01 :1,2,3,4,5
30 28 24 18 23 33 17 04 05 11 06 25 26 01 03 16 14 32 :1,2,3,4,5
05 02 10 23 09 25 14 18 08 13 24 27 06 29 30 04 33 16 :1,2,3,4,5
17 29 13 10 27 01 04 26 15 09 11 08 14 25 20 02 16 18 :1,2,3,4,5
27 07 03 30 22 06 33 20 25 29 17 04 24 12 09 32 23 31 :1,2,3,4,5
09 01 30 10 29 08 05 32 24 06 19 17 03 20 07 28 13 25 :1,2,3,4,5
10 13 07 20 29 30 11 23 31 08 32 21 18 26 27 03 24 22 :1,2,3,4,5
26 16 17 08 30 21 27 18 04 02 09 10 01 31 20 33 06 19 :1,2,3,4,5
09 26 32 14 33 22 31 11 24 16 01 28 17 15 04 12 18 10 :1,2,3,4,5
06 22 27 05 26 10 23 21 18 31 01 08 03 17 30 12 25 19 :1,2,3,4,5
02 08 26 22 12 28 10 31 06 24 04 25 11 15 23 14 21 18 :1,2,3,4,5
04 26 02 22 05 12 27 21 28 32 17 11 23 03 08 07 14 25 :1,2,3,4,5

TOP

本帖最后由 yyykkkyyyy 于 2011-12-27 20:29 编辑

早该想到超限了, 我是看发的附件可以处理... 拼凑了一段,希望有高手来指导一下
  1. @echo off&setlocal enabledelayedexpansion
  2. cd/d "c:\ccc"
  3. more +11  "%~f0">t.bat
  4. for /f "delims=" %%i in ('dir/b 模式*.flt')do (
  5.    echo %%i
  6.    set "nf=%%~ni"
  7.    set "nf=!nf:模式=号码匹配过滤!"
  8.    start /min /wait t.bat "%%i" "!nf!.mod")
  9. del t.bat&pause
  10. goto :eof
  11. rem ============以下为临时bat文件============
  12. @echo off&setlocal enabledelayedexpansion
  13. (for /L %%a in (1,0,1)do (
  14.   set u=&set/p u=
  15.   if not defined u endlocal&exit
  16.   if not "!u:~,1!"=="[" (
  17.   if not exist %2 (
  18.     for /f "tokens=1* delims=号码匹配过滤=;" %%a in ("!u!")do (
  19.       echo %%a>%2
  20.       set u=%%b))
  21.   set "u=!u:;=#";"!"
  22.   for %%u in ("!u!")do (
  23.     set "h=%%~u"
  24.     (if "!h:~-1!"=="#" (echo;!h:~,-1!)else set/p=!h!<nul)>>%2
  25. ))))<%1
复制代码

TOP

谢谢yyykkkyyyy   awk  ArdentMan

TOP

谢谢yyykkkyyyy   awk  ArdentMan

TOP

返回列表