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

我想实现以下的目的:
首先,我有个.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位为月份,否则取前1位,并前缀0,作为月份
2)如果是0,取变量3-4位为月份,否则取2-3位,作为日

解答:
@echo off
for %%i in (*.dat) do call :goren %%i
goto end

:goren
set /p firstln=<%1
set year=%firstln:~4,1%

if /i %year% GTR 0 (set month=0%firstln:~0,1%& set day=%firstln:~1,2%) else (
    set month=%firstln:~0,2%& set day=%firstln:~2,2%
)
ren %1 c01-%month%%day%.cvs
goto end

:end

时间: 2024-09-20 00:51:26

批处理应用:根据文件内容进行重命名操作_DOS/BAT的相关文章

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

我想实现以下的目的: 首先,我有个.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位

批处理利用HOSTS文件(屏蔽,加速)网站的代码_DOS/BAT

复制代码 代码如下: @echo off&setlocal&cls echo/&echo\&echo=&echo]&echo[&echo+ :start set/p a=选择模式(1:屏蔽网站 2:加速访问 3:删除被屏蔽的网站 4:退出): if not defined a goto start if %a% equ 1 (echo/&goto a) if %a% equ 2 (echo/&goto b) if %a% equ 3

python对指定目录下文件进行批量重命名的方法_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

win7系统桌面所有文件都无法重命名提示“目标文件夹访问被拒绝”如何解决

  win7系统桌面所有文件都无法重命名提示"目标文件夹访问被拒绝"如何解决 具体步骤: 1.打开"计算机",定位到C:UsersAdministratorDesktop ; 2.在空白处单击右键,选择"属性"; 3.在"安全"标签中点击"编辑"按钮; 4.选择你登录的帐户名如:Administrator,将"用户名"权限设置"完全控制"后面的"允许&quo

在Linux中对文件进行批量重命名文件的方法

  在Linux中,当你想要改变一个文件名,使用mv命令就好了.然而mv不能使用通配符重命名多个文件.可以用sed.awk或者与xargs结合使用来处理多个文件的情况.然而,这些命令行即繁琐又不友好,并且如果不小心的话还很容易出错.你不会想要撤销1000个文件的错误名吧! 当你想要重命名多个文件的时候,rename 工具或许是最简单.最安全和最强大的命令行工具.这个rename命令实际上是一个Perl脚本,它预安装在所有的现在Linux发行版上. 下面是重命名命令的基本语法. 代码如下: ren

文件夹怎么重命名

  [方法一] 第一步:单击选中要改名的文件或文件夹. 第二步:移动鼠标到菜单栏单击"文件". 第三步:在出现的菜单上选择并单击"重命名". 第四步:键入新的文件或文件夹名. 第五步:单击新文件或文件夹名,也可以使用键盘按回车键. [方法二] 第一步:移动鼠标到需要改名的文件或文件夹上. 第二步:单击鼠标右键. 第三步:在出现的菜单上选择并单击"重命名". 第四步:键入新的文件或文件夹名. 第五步:单击新文件或文件夹名,也可以使用键盘按"

PowerShell批量文件重命名操作实例_PowerShell

总算发现PowerShell相对于CMD来说实用的地方了. 事情是这样的,我下载了一些美剧(抱歉,看完会删的),通常文件名都比较长,包含了很多我不需要的信息,,比如: 复制代码 代码如下: 别对我撒谎.Lie.To.Me.S02E11.Chi_Eng.HDTVrip.720×396-YYeTs人人影视V2.rmvb 别对我撒谎.Lie.To.Me.S02E12.Chi_Eng.HDTVrip.720×396-YYeTs人人影视.rmvb 别对我撒谎.Lie.To.Me.S02E13.Chi_En

可疑文件的批处理最好能用循环来写主体部分_DOS/BAT

今天找了两篇原来保存的但是没正经看的讲批处理的帖子,虽然讲得比较粗,例子也很简单,但还是小有收获.计划中查可疑文件的批处理最好能用循环来写主体部分,因为涉及到比较多的文件路径和文件名,直接手工写BAT的话太费劲.而for循环正好可以在一定程度上满足需求,所以对for循环的用法重点看了看,虽然还不太懂,但是试着写了几行代码,效果还可以.     实验中涉及到4个文件:list.txt,pre.bat,check.bat,check.log.     首先,要有list.txt,这个文件记录了所有可

批处理制作照片整理器第1/2页_DOS/BAT

最近相机里的照片比较多,一般是连拍了好几天之后,才把相机里的照片一股脑放到硬盘里,并且是隔上一两个星期才整理一次.日子一长,照片就多了起来,都分不清是什么时候拍的了.网上搜索了很久,找到一款名为PhotosTool的软件,可以按拍摄日期来整理照片,正合我意,只可惜,这个不到1M的小软件,居然要另外安装20余M的.NET 2.0,一气之下,用P写了一个类似功能的脚本,发出来大家玩玩. 曾经有一段时间,单位资料室的电脑中毒很深,保存有数十G工作照片的分区也惨遭毒手--那可是我们单位几年工作的心血啊!