标题: 重命名文件为上级目录名并按规律添加序号
[打印本页]
作者: chenwc520
时间: 2007-6-17 21:27
标题: 重命名文件为上级目录名并按规律添加序号
重命名 当前目录下所有 指定的扩展名文件 为上级目录名,两个文件以上自动添加序号.
如:E:\Tencent下有以下文件
E:\Tencent\qq\w.exe
E:\Tencent\qq\e.exe
用脚本自动重命名为
E:\Tencent\qq\qqa.exe
E:\Tencent\qq\qqb.exe
或
E:\Tencent\qq\qq1.exe
E:\Tencent\qq\qq2.exe
如果指定的扩展名只有一个文件,直接改为上级目录名相同
[
Last edited by bjsh on 2007-7-31 at 12:57 PM ]
作者: lxmxn
时间: 2007-6-18 04:35
Try this
@echo off&Setlocal EnableDelayedExpansion
set /p file_type=输入文件的扩展名,格式为[.ext]:
if not defined file_type exit
for /f "delims=" %%a in ("%cd%") do set new_name=%%~na
for /f "delims=" %%a in ('dir /b *%file_type%') do (
set /a num+=1
ren "%%a" "%new_name%!num!%file_type%"
)
if %num% equ 1 ren "%new_name%1%file_type%" "%new_name%%file_type%"
pause&exit/b
作者: chenwc520
时间: 2007-6-18 14:01
标题: 谢谢版主
测试有效,我开始没说清楚,如果做成是包括子文件夹呢,应该怎么写?而且文件排序是根据什么排?
文件名也是改成它上一级目录名
[
Last edited by chenwc520 on 2007-6-18 at 02:10 PM ]
作者: chenwc520
时间: 2007-6-18 14:17
标题: 再问
是不是改"dir /b" 为"dir /o:n" 就是按名称(字母顺序)排序???
作者: jubailan
时间: 2007-6-21 15:12
@echo off
setlocal enabledelayedexpansion
cls
if exist my.txt del my.txt /q
if exist kong.txt del kong.txt /q
::目标文件夹路径
set u=D:\bat\my2
::选择命名方式 name1和name2两种
goto name1
::将文件名命名为所属文件夹名称
:name1
::循环遍历包括子文件夹的所有文件夹,获取文件夹名称
for /f "delims=" %%i in ('dir /b/ad/s %u%') do (
set a=0
set y=1
::判断文件夹是否为空,为空则删除
dir /a /b "%%i"|findstr .>nul||set/a y=0&&echo %%i是空目录将被删除&&rd "%%i"&&echo %%i已被删除
::如果文件夹非空,则修改文件夹下文件名称,否则进入下一个文件夹
if !y!==1 (
for /f "delims=" %%j in ('dir /b/a-d "%%i"') do (
if "%%~xj"==".abr" (
ren "%%i\%%j" "%%~ni!a!.abr"
echo 重命名:%%i\%%j -----------%%~ni!a!.abr>>my.txt
) else (echo %%i\%%j不是画笔文件>>my.txt)
set/a a+=1
)
)
)
goto end
::将文件名命名为所属根目录文件夹的名称
:name2
for /f "delims=" %%i in ('dir /b %u%') do (
set a=
for /f "delims=" %%j in ('dir /b/a-d/s "%u%\%%i"') do (
if "%%~xj"==".abr" (
ren "%%j" "%%i!a!.abr"
echo 重命名:%%j -----------%%i!a!.abr>>my.txt
) else (echo %%j不是画笔文件>>my.txt)
set/a a+=1
)
)
goto end
:end
endlocal
if exist my.txt start my.txt
if exist kong.txt start kong.txt
作者: jubailan
时间: 2007-6-21 15:18
不好意思没帮你改一下就发上来了,这个是我用来修改photoshop画笔文件(.abr)的批处理命令,因为我个人需要包含了两种修改方式,而且还包含了些当时调试用的代码,不过不影响使用,你自己看看那吧也许能有帮助,本人系初学者,万望高手指教
作者: chenwc520
时间: 2007-6-22 15:31
标题: 楼上的朋友,测试过不行
楼上的朋友,测试过不行,不过还是谢谢你
作者: yywd
时间: 2007-10-12 18:12
Quote: |
Originally posted by jubailan at 2007-6-21 15:12:
@echo off
setlocal enabledelayedexpansion
cls
if exist my.txt del my.txt /q
if exist kong.txt del kong.txt /q
::目标文件夹路径
set u=D:\bat\my2
::选择命名方式 name1和name2两种 ... |
|
很好用, 如能把文件名的序号0取消就更好了
作者: hhzjxss
时间: 2010-8-20 23:35
路过看看!