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

[文本处理] [已解决]批处理如何实现文件名更改?

本帖最后由 511182890 于 2015-5-5 08:10 编辑

需要更改文件名,有50W个文件,我有文件名修改器,麻烦大神写个BAT。
例:
AA2065-G1101-AA-133主副背料(6米48)倒顺.dxf
BBB2065-G1101-AA五位-145主料(6米48)双向.dxf
AA2065-G1101-AA五四位-136副背料(6米48)四向.dxf
执行后结果:
AA2065-G1101-AA-133-主副背料-倒顺-6.48.dxf
BBB2065-G1101-AA五位-145-主料-双向-6.48.dxf
AA2065-G1101-AA五四位-136-副背料-四向-6.48.dxf

文件名:要求
1、最后二个字就只有“倒顺,双向,四向”要把它移到“()”前面
2、“(”更改为“-”,“米”改“.”
3、数字133,145,136后面需要加个“-”
4、什么料有这些料:主料,副料,背料,主副料,副背料


帮助程序写全,我直接保存执行就行的那种!
1

评分人数

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

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1-3 delims=()" %%i in ('dir /b /a-d *.dxf') do (
  4.     set "a=%%i"
  5.     set "a=!a:主副料=-主副料!"
  6.     set "a=!a:副背料=-副背料!"
  7.     set "a=!a:主料=-主料!"
  8.     set "a=!a:副料=-副料!"
  9.     set "b=%%j"
  10.     set "b=!b:米=.!"
  11.     set "c=%%k"
  12.     set "c=!c:~0,2!"
  13.     ren "%%i(%%j)%%k" "!a!-!c!-!b!"
  14. )
  15. pause
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# Batcher


    我的材料有:5个:主料,副料,背料,主副料,副背料
还有运行之后。DXF没有了,麻烦大神再帮忙修改一下

TOP

本帖最后由 511182890 于 2015-4-30 10:10 编辑

回复 3# 511182890


    例:这是我所有的文件命名了。
AA2065-G1101-AA-133主副背料(6米48)倒顺.dxf
BB2065-G1101-AA-136副背料(6米48)四向.dxf
CCC2065-G1101-AA-145主料(6米48)双向.dxf
DD2065-G1101-AA五位-136副料(6米48)四向.dxf
FFF2065-G1101-AA五四位-136背料(6米48)四向.dxf
执行后结果:
AA2065-G1101-AA-133-主副背料-倒顺-6.48.dxf
BB2065-G1101-AA-136-副背料-四向-6.48.dxf
CCC2065-G1101-AA-145-主料-双向-6.48.dxf
DD2065-G1101-AA五位-136-副料-四向-6.48.dxf
FFF2065-G1101-AA五四位-136-背料-四向-6.48.dxf

文件名:要求
1、最后二个字就只有“倒顺,双向,四向”要把它移到“()”前面
2、“(”更改为“-”,“米”改“.”
3、数字133,145,136后面需要加个“-”
4、什么料有这些料:主料,副料,背料,主副料,副背料

如果什么料不好实现的话,结果这样也没有关系
AA2065-G1101-AA-133主副背料-倒顺-6.48.dxf
BB2065-G1101-AA-136副背料-四向-6.48.dxf
CCC2065-G1101-AA-145主料-双向-6.48.dxf
DD2065-G1101-AA五位-136副料-四向-6.48.dxf
FFF2065-G1101-AA五四位-136背料-四向-6.48.dxf

TOP

回复 4# 511182890


AA2065-G1101-AA-133主副背料(6米48)倒顺.dxf
你提到的五种材料里面没有“主副背料”,请确定一下有还是没有。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 5# Batcher


确定有主副背料   
有主副背料没有主副料

TOP

AA2065-G1101-AA-133-主-副-背料-倒顺-6.48
BB2065-G1101-AA-136-副-背料-四向-6.48
CCC2065-G1101-AA-145-主料-双向-6.48
DD2065-G1101-AA五位-136-副料-四向-6.48
FFF2065-G1101-AA五四位-136-背料-四向-6.48
这是我用你的代码运行之后的结果,其实帮我。DXF加进去,就好了,因为“主-副-背料”,“副-背料”我只要用文件名修改器改一次就好了
还有一个要求就是该目录下面所有子文件夹里的文件

TOP

回复 7# 511182890
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1-3 delims=()" %%i in ('dir /b /a-d *.dxf') do (
  4.     set "a=%%i"
  5.     if "!a:主副背料=-主副背料!" neq "%%i" (
  6.         set "a=!a:主副背料=-主副背料!"
  7.     ) else if "!a:副背料=-副背料!" neq "%%i" (
  8.         set "a=!a:副背料=-副背料!"
  9.     ) else (
  10.         set "a=!a:主料=-主料!"
  11.         set "a=!a:副料=-副料!"
  12.         set "a=!a:背料=-背料!"
  13.     )
  14.     set "b=%%j"
  15.     set "b=!b:米=.!"
  16.     set "c=%%k"
  17.     set "d=!c:~3!"
  18.     set "c=!c:~0,2!"
  19.     ren "%%i(%%j)%%k" "!a!-!c!-!b!.!d!"
  20. )
  21. pause
复制代码
先测试基本功能,子文件夹的事情稍后再说。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 8# Batcher


    非常感觉,完美执行。就是能不能在子目录下面也运行。

TOP

用灵格吧。。

TOP

回复 10# sinsky


    灵格是什么,软件?

TOP

在各个子目录下运行这个批处理品

本帖最后由 511182890 于 2015-4-30 16:18 编辑

有个一个批处理命名a.bat
我想让他在D盘的每个文件夹下执行这个批处理。D盘下包括所有子目录有1000个文件夹!
我没有在每个文件夹下放入这个BAT。
这个怎么操作。

a.bat是这个内容:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1-3 delims=()" %%i in ('dir /b /a-d *.dxf') do (
  4.     set "a=%%i"
  5.     if "!a:主副背料=-主副背料!" neq "%%i" (
  6.         set "a=!a:主副背料=-主副背料!"
  7.     ) else if "!a:副背料=-副背料!" neq "%%i" (
  8.         set "a=!a:副背料=-副背料!"
  9.     ) else (
  10.         set "a=!a:主料=-主料!"
  11.         set "a=!a:副料=-副料!"
  12.         set "a=!a:背料=-背料!"
  13.     )
  14.     set "b=%%j"
  15.     set "b=!b:米=.!"
  16.     set "c=%%k"
  17.     set "d=!c:~3!"
  18.     set "c=!c:~0,2!"
  19.     ren "%%i(%%j)%%k" "!a!-!c!-!b!.!d!"
  20. )
  21. pause
复制代码

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('dir /b /s /a-d *.dxf') do (
  4.     for /f "tokens=1-3 delims=()" %%i in ("%%~nxa") do (
  5.         set "a=%%i"
  6.         if "!a:主副背料=-主副背料!" neq "%%i" (
  7.             set "a=!a:主副背料=-主副背料!"
  8.         ) else if "!a:副背料=-副背料!" neq "%%i" (
  9.             set "a=!a:副背料=-副背料!"
  10.         ) else (
  11.             set "a=!a:主料=-主料!"
  12.             set "a=!a:副料=-副料!"
  13.             set "a=!a:背料=-背料!"
  14.         )
  15.         set "b=%%j"
  16.         set "b=!b:米=.!"
  17.         set "c=%%k"
  18.         set "d=!c:~3!"
  19.         set "c=!c:~0,2!"
  20.         ren "%%~dpa%%i(%%j)%%k" "!a!-!c!-!b!.!d!"
  21.     )
  22. )
  23. pause
复制代码
1

评分人数

TOP

回复 2# apang


    谢谢,完美执行

TOP

回复 9# 511182890
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('dir /b /s /a-d *.dxf') do (
  4.     for /f "tokens=1-3 delims=()" %%i in ("%%~nxa") do (
  5.         set "a=%%i"
  6.         if "!a:主副背料=-主副背料!" neq "%%i" (
  7.             set "a=!a:主副背料=-主副背料!"
  8.         ) else if "!a:副背料=-副背料!" neq "%%i" (
  9.             set "a=!a:副背料=-副背料!"
  10.         ) else (
  11.             set "a=!a:主料=-主料!"
  12.             set "a=!a:副料=-副料!"
  13.             set "a=!a:背料=-背料!"
  14.         )
  15.         set "b=%%j"
  16.         set "b=!b:米=.!"
  17.         set "c=%%k"
  18.         set "d=!c:~3!"
  19.         set "c=!c:~0,2!"
  20.         ren "%%a" "!a!-!c!-!b!.!d!"
  21.     )
  22. )
  23. pause
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表