windows 批处理-重命名
从数字1递增批量重命名ren.bat:
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set /A num=
FOR /F "tokens=*" %%i in ('dir /A-D /B /OD /TC') do (
IF NOT "%%i"=="%~n0%~x0" (
set /A num+=
ren "%%i" "!num!%%~xi"
)
)
ENDLOCAL
exit
按00001这类格式递增批量重命名ren.bat:
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set /A num=
FOR /F "tokens=*" %%i in ('dir /A-D /B /OD /TC') do (
IF NOT "%%i"=="%~n0%~x0" (
set /A num+=
if !num! LSS (
ren "%%i" !num!%%~xi
) ELSE (
if !num! LSS (
ren "%%i" !num!%%~xi
) ELSE (
if !num! LSS (
ren "%%i" !num!%%~xi
) ELSE (
if !num! LSS ren "%%i" !num!%%~xi
)
)
)
)
)
ENDLOCAL
exit
如果觉得0多了,可以用下面的批处理来去掉,默认是去1个,要去多少个就把!name:~1!中的数字1改成要去的个数,改这个批处理要比改前面的批处理方便一些,所以写了这个用:
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set name=
FOR /F "tokens=*" %%i in ('dir /A-D /B /OD /TC') do (
IF NOT "%%i"=="%~n0%~x0" (
set name=%%i
set name=!name:~!
ren "%%i" "!name!"
)
)
ENDLOCAL
exit
上面的批处理要和文件放在一个目录里,命名后删除批处理文件即可。
直接使用dir的话,缺点是重命名的时候把批处理本身及子文件夹也改名了,而且
所得文件名字不能连续排序(批处理文件可能占了中间某个序号),因此用dir参
数进行排除文件夹内的子文件夹以及排序(排序目的就是把批处理排到最后)。
还有就是重名现象不好解决,如果原来已经含有一个重命名后可能会出现的名称,
名称被占用了程序就不能继续运行。可以事先用系统的重命名功能命名一次,方
法是选择要重命名的所有文件,Ctrl+a或者选择第一个再按住Shift不放,再选最
后一个进行连续选择,右键点击其中一个文件,选择重命名,然后随便写一个名
字,你将看到系统的批量命名是以括号内数字递增的。
排序参数的说明:
下面这行
FOR /F "tokens=*" %%i in ('dir /A-D /B /OD /TC') do (
中的/OD参数是按时间排序,使用的时候把批处理文件复制到文件夹里,那么批处
理文件的创建时间就是最后的了,解决了文件连续的问题。
如果用/O-E也可以,这样也能使批处理文件排在最后(扩展名是bat,b的优先级高,
用-号来颠倒顺序)。
/OD后再加/TC更准确些。
dir中/O和/T参数的说明:
/O 用分类顺序列出文件。
sortorder N 按名称(字母顺序) S 按大小(从小到大)
E 按扩展名(字母顺序) D 按日期/时间(从先到后)
G 组目录优先 - 颠倒顺序的前缀
/T 控制显示或用来分类的时间字符域。
timefield C 创建时间
A 上次访问时间
W 上次写入的时间
for会自动去掉空行的,所以参数肯定不为空。
参考:
http://www.newsmth.net/nForum/#!article/DOS/17370
log.csdn.net/liujishen/article/details/4490859
http://www.cnblogs.com/shiney/archive/2011/07/04/2097236.html
windows 批处理-重命名的更多相关文章
- 【VS开发】cmd dos 批处理重命名文件
原文地址:http://hi.baidu.com/benchoi/item/c1f531f5f1367b0b85d2785b 批处理实现文件批量重命名并自动加递增序列号 有时我们想把一些图片批量重命名 ...
- bat批处理重命名问题
因为要重命名的字符串中有文字,导致重命名出来的文件名都变为乱码了,查理一下需要加两句话 1. @Echo Off Chcp 65001>nul SetLocal EnableDelayedExp ...
- windows下重命名一个带有前缀"."dot字符的名字的错误问题
如果用正常的右键重命名那么肯定会报错的,比如: 有一个名为project的文件,我想把它命名为.project,加了个前缀dot.然后window就报错了,弹出个对话框让“你必须输入一个文件名”.它可 ...
- git Windows下重命名文件,大小写敏感问题
作为一个重度强迫症患者,是不忍受文件名,有字母大小拼写错误的,但是在git下,已是受控版本文件要改过来,要费些周章了. 一.环境 Widnows + git version 2.24.0 + Tort ...
- 当git上文件大小写重命名的修改时(git大小写敏感/默认不敏感),如何提交
git默认是大小写不敏感!!! 加了感叹号是什么意思呢,意思就是这本身就是一个坑,本人使用的IDE是idea(网上说Eclipse可以避开问题),这个IDE本身就集成了git,但是如果要在termin ...
- 当git上文件名大小写重命名的修改时(git大小写敏感/默认不敏感),如何重命名并提交
git默认是大小写不敏感!!! 加了感叹号是什么意思呢,意思就是这本身就是一个坑,本人使用的IDE是idea(网上说Eclipse可以避开问题),这个IDE本身就集成了git,但是如果要在termin ...
- git重命名文件和文件夹
git mv -f oldfolder newfoldergit add -u newfolder (-u选项会更新已经追踪的文件和文件夹)git commit -m "changed th ...
- windows dos 批量重命名文件
描述 在工作中经常出现 在同一目录下有一些 很多相同扩展名的文件但是名字看起来很乱各不同,我们想将它们统一重命名一下统一的格式,如果一个个去改名字太麻烦了. 这里我门就可以使用windows下 dos ...
- (转)Windows重启延迟删除,重命名技术原理
所谓重启延迟删除技术,就是在操作系统启动前删除或者替换文件! 说起重启延迟删除,大家可能都很陌生,但是实际上,该功能已经被各种软件所采用:如安装Windows 补丁程序(如:HotFix.Servic ...
随机推荐
- Linux下MySQL链接被防火墙阻止
Linux下安装了MySQL,不能从其它机器访问 帐号已经授权从任意主机进行访问 vi /etc/sysconfig/iptables 在后面添加 -A RH-Firewall-1-INPUT -m ...
- bootstrap之UpdateStrings
UpdateStrings package io.appium.android.bootstrap.handler; import io.appium.android.bootstrap.Androi ...
- 浅谈 .NET 中的对象引用、非托管指针和托管指针
目录 前言 一.对象引用 二.值传递和引用传递 三.初识托管指针和非托管指针 四.非托管指针 1.非托管指针不能指向对象引用 2.类成员指针 五.托管指针 前言 本文主要是以 C# 为例介绍 .NET ...
- python练习笔记——完全数(1000以内的)
完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数.它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身.如果一个数恰好等于它的因子之和,则称该数为“完 ...
- C#开发Windows Services服务--服务安装失败的解决办法
问题1:“System.Security.SecurityException:未找到源,但未能搜索某些或全部事件日志.不可访问的日志: Security.” 正在运行事务处理安装. 正在开始安装的“安 ...
- DataGridView合并单元格(多行多列合并)
一.点击在拖入的显示控件(TreeList)右上方的箭头,在Treelist任务中选择数据源,添加项目数据源,依次选择数据库.数据集,新建连接,浏览选择数据库(*.mdb),依次点击 下一步,选择“表 ...
- Android 轻松实现语音识别
2010-11-12 17:01:51 标签:休闲 职场 Android 语音识别 移动开发 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任 ...
- C语言笔记本
在此记录一些常见的C语言错误,可以当作学习C语言的笔记,需要的时候可以回过头看看. 1.关于“++” #include int main() { int a,b,cd; a=10; b=a++; c= ...
- CLH队列锁
http://blog.csdn.net/aesop_wubo/article/details/7533186 CLH锁即Craig, Landin, and Hagersten (CLH) lock ...
- python 小游戏之摇骰子猜大小
最近学习Python的随机数,逻辑判断,循环的用法,就想找一些练习题,比如小游戏猜大小,程序思路如下: 开发环境:python2.7 , 附上源代码如下: 摇骰子的函数,这个函数其实并不需要传任何参数 ...