用批处理实现将文件以数字重命名的代码

要求:
   1、不能改变a.txt内容的顺序
   2、将当前目录下的所有jpg文件以序号的形式重命名 如:从1-16
   3、如果有16个文件,必须重命名为1-16,不允许出现16之后的序号
a.txt 内容:


代码如下:

2.jpg
1.jpg
a.jpg
5ww.jpg
c.jpg
f.jpg
rty.jpg
3.jpg
11.jpg
b.jpg
6.jpg
e.jpg
8.jpg
111.jpg
7.jpg
30.jpg

a.txt中的内容其实就是当前文件夹下的jpg文件列表。
要求将当前文件夹里的所有jpg文件以序号的形式重命名。
但只能从 a.txt 获取当前文件夹里的所有 jpg 的文件名。
以序号重命名文件,陷阱重重,但如果用dir或for等命令来获取文件名的话,获取的先后次序会有一定规律,导致有些问题不能体现出来


代码如下:

@echo on
setlocal enabledelayedexpansion
set n=0
set n1=0
for /f "tokens=*" %%a in (a.txt) do (
     set /a n+=1
     ren %%a t!n!.jpg
    )
:loop
set /a n1+=1  
ren t%n1%.jpg %n1%.jpg&&goto :loop
exit

第二种方法
好像可以更简单点


代码如下:

@echo off
ren *.jpg t*.jpg
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir/b "t*.jpg"') do (
   set str=%%a&set str=!str:~1!
   ren "%%a" "!str!"
)
pause

(0)

相关推荐

  • cmd ren命令 重命名文件(夹)

    ren 的用法很简单,其使用格式为:ren 旧文件 新文件名.例如,把test.txt改写为abc.txt,使用 ren test.txt abc.txt即可. 需要注意的是,旧文件可以使用绝对路径,也可以使用相对路径,但是,新文件名不能使用任何路径,只能是新的文件名,即使这个路径就是当前目录.例如:需要修改d:\test\abc.txt这个文件的名字为xyz.txt的话,如果当前路径位于d:\test,那么,命令可以写成:ren abc.txt xyz.txt.ren d:\test\abc.

  • 批处理应用:根据文件内容进行重命名操作

    我想实现以下的目的: 首先,我有个.dat文件,名字是固定的,需要更改这个文件名. .dat第1行的内容是: 10107xxxxxx,代表的意思是2007.01.01,后面的x内容不固定.如果是1~9月,则第1个字符是空的. 现在要根据这行内容来改文件名.比如10107XXXXXX,改为c01-0101.cvs. 110107xxxxxx,改为c01-1101.cvs 请问该怎么写这个BAT文件. 分析: 读出第一行内容到一变量 区变量的第5个字符,可以判断是否为0  1)如果是0,取变量前2位

  • 批处理应用根据文件内容进行重命名操作

    我想实现以下的目的: 首先,我有个.dat文件,名字是固定的,需要更改这个文件名. .dat第1行的内容是: 10107xxxxxx,代表的意思是2007.01.01,后面的x内容不固定.如果是1~9月,则第1个字符是空的. 现在要根据这行内容来改文件名.比如10107XXXXXX,改为c01-0101.cvs. 110107xxxxxx,改为c01-1101.cvs 请问该怎么写这个BAT文件. 分析: 读出第一行内容到一变量 区变量的第5个字符,可以判断是否为0 1)如果是0,取变量前2位为

  • dos 重命名文件(夹)ren

    ren 的用法很简单,其使用格式为:ren 旧文件 新文件名.例如,把test.txt改写为abc.txt,使用 ren test.txt abc.txt即可. 需要注意的是,旧文件可以使用绝对路径,也可以使用相对路径,但是,新文件名不能使用任何路径,只能是新的文件名,即使这个路径就是当前目录.例如:需要修改d:\test\abc.txt这个文件的名字为xyz.txt的话,如果当前路径位于d:\test,那么,命令可以写成:ren abc.txt xyz.txt.ren d:\test\abc.

  • 用批处理重命名文本文件名的代码

    实现代码1@echo off&setlocal enabledelayedexpansion for /f "delims=" %%a in ('dir/b *.txt') do (    set /a n+=1    if not exist "!n!.txt" (ren "%%a" "!n!.txt") else call :loop "%%a" ) pause&exit :loop  

  • 全盘搜索指定文件并拷贝到指定位置[自动重命名]的批处理

    复制代码 代码如下: @echo off&setlocal enabledelayedexpansion set num=0 set /p filename=请输入要查找的文件名[包含文件扩展名]: set /p newpath=请输入所要拷贝到的指定目录: if not exist !newpath! md !newpath! 1>nul 2>nul set zh=!newpath:~-1! if !zh! NEQ "\" set newpath=!newpath

  • 文件夹取其名称前两位重命名的批处理代码

    将所有文件夹取其名称前两位重命名的批处理脚本: 复制代码 代码如下: @echo off& setlocal enableDelayedExpansion set n = 41029 for /f "delims=" %%a in ('dir /ad /b') do (set a=%%a ren "%%a" 41029!a:~0,2! ) pause 对以上代码的解释: 其中 /ad 是只显示目录,就是剔除文件,只显示文件夹. /b是使用空格式(没有标题信息

  • 批处理重命名特殊文件名的代码

    一b!a!1235@_ s%#8i 三 c.rar h^e12 0~%l%!p!@. s321-的文件.txt %o%%% !O!ffi9~ ce$- Wor8d29 文档.docx 重命名.bat 图1: 要求运行批处理将这三个文件文件名中的数字.汉字.特殊字符全部(含空格)去掉,而重命名为只含字母的文件,但 后缀名不能更改,同时批处理自身名字不能更改,重命名后: basic.rar helps.txt oOfficeWor.docx 重命名.bat 图2: 要求:代码简洁.通用.效率不至于太

  • 用批处理实现将文件以数字重命名的代码

    要求:    1.不能改变a.txt内容的顺序    2.将当前目录下的所有jpg文件以序号的形式重命名 如:从1-16    3.如果有16个文件,必须重命名为1-16,不允许出现16之后的序号 a.txt 内容: 复制代码 代码如下: 2.jpg 1.jpg a.jpg 5ww.jpg c.jpg f.jpg rty.jpg 3.jpg 11.jpg b.jpg 6.jpg e.jpg 8.jpg 111.jpg 7.jpg 30.jpg a.txt中的内容其实就是当前文件夹下的jpg文件列

  • Win10利用bat文件实现文件与文件夹批量重命名的实践

    目录 bat文件 批量重命名文件夹 批量重命名文件 后记 bat文件 利用Win10的bat文件能够实现垃圾清理.电脑关机等.同样的,使用Win的bat文件能够实现文件与文件夹的批量重命名,这样就免去了通过写一个脚本,或者代码程序来运行.做这个的初衷是在处理深度学习的数据集时,为了增加可识别性,将每一个图片文件重命名,特以博客以记之.参考网上的一些方式以及自己的试坑,最终总结如下. 批量重命名文件夹 在示例中我创建了1005个文件夹,如下图所示 bat文件代码如下,其中第五行是命名,!a!是一个

  • python对指定目录下文件进行批量重命名的方法

    本文实例讲述了python对指定目录下文件进行批量重命名的方法.分享给大家供大家参考.具体如下: 这段python代码可对c:\temp目录下的所有文件名为"scroll_1"文件替换为"scroll_00" import os path = 'c:\\temp' for file in os.listdir(path): if os.path.isfile(os.path.join(path,file))==True: newname = file.replace

  • Python3 实现文件批量重命名示例代码

    在Python中os模块里,os.renames() 方法用于递归重命名目录或文件.类似rename(). rename()方法语法格式如下: os.rename(old,new) old是需要修改的目录/文件名,new是修改后的目录/文件名,通过这个方法我们可以很轻松的完成批量在文件/目录增加固定前缀或者批量删除文件/目录固定前缀 . 以下代码Windows下和Linux都可以使用. 示例如下: 增加前缀'[Linuxidc.]': import os path='/home/linuxidc

  • python利用文件时间批量重命名照片和视频

    本文实例为大家分享了python利用文件时间批量重命名照片和视频的具体代码,供大家参考,具体内容如下 问题描述 承接上节的问题,在安卓和苹果间互导照片和视频还容易出现文件名混乱的问题,如下图所示. 代码实现 为保证文件名的准确性,这里主要提取照片的拍摄时间和视频的修改时间用于重命名,这两个时间一般是其原始时间,实现代码如下: import os import re import time import exifread def get_file_date(filepath, format): '

  • Python和perl实现批量对目录下电子书文件重命名的代码分享

    经常会遇到下载的文件或电子书,名字中间都包含了一些网址信息,实际使用中由于名字太长不方便,下面的脚本使用正则表达式来对目录下的所有文件重命名: 例如: 修改前:[我们]Mac OS X for Unix Geeks[www.jb51.net].mobi 修改后:Mac OS X for Unix Geeks.mobi python代码如下: 复制代码 代码如下: import os import re def rename_dir(dir,regex,f):   if not os.path.i

  • node.js文件上传重命名以及移动位置的示例代码

    一个关于node上传文件的例子,下面是前端代码, doUpload() { var formData = new FormData($("#uploadForm")[0]); $.ajax({ url: 'http://localhost:3011/upload', type: 'POST', data: formData, async: false, cache: false, contentType: false, processData: false, success: func

  • C#使用OpenCv图像批处理并改变图片大小并且重命名

    添加NuGet包 选择最新版就好了 安装完成后右键项目重新生成方案 使用OpenCvSharp.CPlusPlus命名空间 using OpenCvSharp.CPlusPlus; 写一个函数用来改变图片大小并且重新命名 read_path是存储图片的文件夹的路径,write_path是改变后图片存储的文件夹路径,filename是图片重命名,width和height分别为图片修改后的宽和高 public static void ResizeImg(String read_path,String

随机推荐