本帖最后由 怪怪的僵尸 于 2014-1-14 08:25 编辑
【功能】:批量更改文件名
【代码】:- @echo off&setlocal enabledelayedexpansion
- echo. 2>nul 3>a.txt
-
- :csxz
-
- ::开始
-
- echo 使用说明:请先将全部要操作的文件放在一个文件夹里。
- echo [1] 文件名前缀;
- echo [2] 文件名后缀;
- echo [0] 退出。
- set /p csxz=请选择:
-
- ::标签跳转
-
- if !csxz!==1 goto qz
- if !csxz!==2 goto hz
- if !csxz!==0 exit
- echo 错误
- goto csxz
-
- ::前缀
-
- :qz
- echo 请输入路径,若在当前路径请不要输入。
- set /p lj=请输入:(路径后请加反斜杠)
-
- ::若路径为空,则cd到.(当前文件夹)。
-
- cd /d !lj!.
-
-
- ::将文件名存在hc.txt中.
-
- dir /o:n /a>hc.txt
- set /p qz=请输入前缀:
-
- ::略过前两个文件夹(..和.),读取第四栏(文件名),加前缀。
-
- for /f "tokens=4 skip=5" %%a in (hc.txt) do (
- ren %%a !qz!%%a
- )
- del /q hc.txt
- echo OK^!&pause&cls&goto csxz
-
-
- ::后缀
- :hz
- echo 请输入路径,若在当前路径请不要输入。
- set /p lj=请输入:(路径后请加反斜杠)
-
- ::若路径为空,则cd到.(当前文件夹)。
-
- cd /d !lj!.
-
-
-
- ::将文件名存在hc.txt中.
-
- dir /o:n /a>hc.txt
- set /p qz=请输入后缀:
-
-
- ::略过前两个文件夹(..和.),读取第四栏(文件名),分割后缀名,主文件名后加后缀,后缀名不动。
-
-
- for /f "tokens=4 skip=5" %%a in (hc.txt) do (
- for /f "delims=. tokens=1-2" %%i in ("%%a") do (
- ren %%i.%%j %%i!hz!.%%j
- )
- )
- del /q hc.txt
- echo OK^!&pause&cls&goto csxz
-
- ::完毕
- ::缺点:1.不能对有空格的文件重命名;2.用了临时文件。
复制代码 【求助】出现了不明错误信息;“文件名后缀”功能无法使用。
【P.S.】 所有错误信息已经重定向至a.txt
【前缀功能错误信息】- 另一个程序正在使用此文件,进程无法访问。
- 拒绝访问。
- 另一个程序正在使用此文件,进程无法访问。
- 系统找不到指定的文件。
- 系统找不到指定的文件。
- 找不到批处理文件。
复制代码 【后缀功能错误信息】- 另一个程序正在使用此文件,进程无法访问。
- 系统找不到指定的文件。
- 系统找不到指定的文件。
复制代码
|