标题: [文件操作] BAT怎样批量文件名称修改? [打印本页]
作者: pgssk 时间: 2013-7-11 10:36 标题: BAT怎样批量文件名称修改?
大量文件名,小弟想只把其中32这两位数变成其他的数值 求助各位大大
作者: xxpinqz 时间: 2013-7-11 11:11
- @echo off
- set/p dst=输入修改数值:
- if "%dst%"=="" goto :eof
- rem 看不准你截图上的—是啥符号,自己替换下下面的-号
- set "c=-"
- for /f "delims=" %%a in ('dir /b/a-d *%c%*.doc 2^>nul') do (
- for /f "tokens=1,2* delims=%c%" %%i in ("%%a") do (
- rem 显示正确后删除echo
- echo ren "%%a" "%%i%c%%dst%%c%%%k"
- )
- )
- pause
复制代码
作者: pgssk 时间: 2013-7-11 11:36
回复 2# xxpinqz
谢谢兄弟,我找到一串代码
:ren1-1
cls
ren *.%no2% *.[%no2%]
for %%a in (0 1 2 3 4 5 6 7 8 9) do (
for %%b in (0 1 2 3 4 5 6 7 8 9) do (
for %%c in (0 1 2 3 4 5 6 7 8 9) do (
color %%b%%c &title %%a%%b%%c.%no2%
echo. %no1%%%a%%b%%c.%no2%
ren *.[%no2%] %no1%%%a%%b%%c.%no2%>nul 2>nul
if not exist *.[%no2%] cls &color 0b &echo OK!! &pause &exit
)
)
)
可是这串代码只能修改后缀名为001 002 003 ,我想让他修改后边为0001 0002 0003 请问怎么修改?
作者: 悬崖之树 时间: 2013-7-11 18:09
本帖最后由 悬崖之树 于 2013-7-11 18:10 编辑
- @echo off&setlocal enabledelayedexpansion
- set /p dst=请输入修改值:
- if not defined dst goto :eof
- for /l %%i in (10001 1 10999) do (
- set i=%%i&set i=!i:~-4!
- if exist "0312-32-ph1-!i!.doc" (
- echo ren "0312-32-ph1-!i!.doc" "0312-%dst%-ph1-!i!.doc"
- )
- )
- pause
复制代码
如果显示正确的话,删掉前面的echo即可。
作者: 悬崖之树 时间: 2013-7-11 18:25
本帖最后由 悬崖之树 于 2013-7-11 18:27 编辑
如果word文件的文件名的后面部分(0001 这些) 是连续的,就可以用下面的代码:- @echo off
- set n=10000
- :loop
- set /a n+=1
- set m=%n:~-4%
- if exist "0312-32-ph1-%m%.doc" (
- ren "0312-32-ph1-%m%.doc" "0312-xxx-ph1-%m%.doc"
- ) else goto :eof
- goto loop
复制代码
作者: 悬崖之树 时间: 2013-7-11 18:32
本帖最后由 悬崖之树 于 2013-7-11 18:35 编辑
如果知道 要改名的文件的个数,可以用下面的代码:(以20个文件为例)- @echo off&setlocal enabledelayedexpansion
- set n=10000
- :loop
- set /a n+=1
- set m=%n:~-4%
- if exist "0312-32-ph1-%m%.doc" (
- ren "0312-32-ph1-%m%.doc" "0312-xxx-ph1-%m%.doc"
- set /a i+=1
- if !i! == 20 goto :eof
- )
- goto loop
复制代码
作者: 悬崖之树 时间: 2013-7-11 18:40
回复 3# pgssk - for %%a in (0 1 2 3 4 5 6 7 8 9) do (
- for %%b in (0 1 2 3 4 5 6 7 8 9) do (
- for %%c in (0 1 2 3 4 5 6 7 8 9) do (
- for %%d in (0 1 2 3 4 5 6 7 8 9) do (
- echo %%a%%b%%c%%d))))
复制代码
作者: weichenxiehou 时间: 2013-7-11 21:56
如果把32改成33:复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |