批处理获取文件修改日期并批量重命名

请问如何修改以下代码,使得批处理能判断目录下的文件名是否已经以文件修改日期开头,如果是,则退出,如果不是,则执行原代码。@ECHOOFFCOLOR0a::rem用dir命... 请问如何修改以下代码,使得批处理能判断目录下的文件名是否已经以文件修改日期开头,如果是,则退出,如果不是,则执行原代码。
@ECHO OFF
COLOR 0a
::rem 用dir命令列出这个批处理所在有那个文件夹下的所有文件
for /f "tokens=*" %%a in ( 'dir * /s /a /b'

) do (
::rem 判断文件名,如果文件名不等于这个批处理自身的文件名,就做重命名操作
if "%%~a" neq "%~0" (
::rem 因为后面要对变量进行重新编辑,所以要启用延迟环境变量功能
SETLOCAL ENABLEDELAYEDEXPANSION
::rem 用%%~t这个功能来取得文件修改的时间
set newFileName=%%~ta
::rem 取得时间的前10位,再加上原来的文件名
set "newFileName=!newFileName:~0,10!%%~nxa"
::rem 把原来的文件名重命名为 时间+文件名 的方式
ren "%%a" "!newFileName!"
::rem 一个循环结束之后把变量延迟功能关闭,避免内存中留有原来的内容。
ENDLOCAL
)
)
PAUSE
展开
 我来答
百度网友fb1604c73
2012-04-13 · TA获得超过101个赞
知道小有建树答主
回答量:365
采纳率:0%
帮助的人:218万
展开全部
是的,应该用字符串比较而非数值比较
如:if "a"=="b" 这是字符串比较
if 1 equ 2 这是数值比较
------------------代码如下

@ECHO OFF
COLOR 0a
::rem 用dir命令列出这个批处理所在有那个文件夹下的所有文件
for /f "tokens=*" %%a in ( 'dir * /s /a /b') do (
if not "%%~a" == "%~0" (
SETLOCAL ENABLEDELAYEDEXPANSION
set FileDate=%%~ta
set FileName=%%~nxa
if not "!FileName:~0,10!" == "!FileDate:~0,10!" (
rem 这一句的意思是 如果文件名的前10位 不等于 文件时间的前10位
rem 就做重命名动作
set "NewFileName=!FileDate:~0,10!!FileName!"

ren "%%a" "!NewFileName!"
)
ENDLOCAL
)
)
PAUSE
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xq1850
2012-04-07 · TA获得超过3790个赞
知道大有可为答主
回答量:3155
采纳率:76%
帮助的人:1560万
展开全部
if "%%~a" neq "%~0"
neq 是针对数值进行操作的,你这里的变量实际为字符,应该使用 if "%%~a"=="%~0" 来判断
追问
这个代码已经可以给文件名添加文件修改日期,但是重复运行该批处理时,目录下的文件名前会多次被添加文件的修改日期。
需要增加一个判断,我是新手,不知道怎么加
追答
就是我前面说的这个原因啊,因为neq 是针对数值进行操作的,你这里的变量实际为字符,也就是说这个判断的结果永远是两个不同,所以程序每判断一次都会添加日期到文件名。应该使用 if "%%~a"=="%~0" 来判断
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
evenar
2012-04-14 · 超过16用户采纳过TA的回答
知道答主
回答量:95
采纳率:0%
帮助的人:40.6万
展开全部
SETLOCAL ENABLEDELAYEDEXPANSION
这个是要做多次循环的 。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hnsz2k
2012-04-12 · TA获得超过1582个赞
知道大有可为答主
回答量:1360
采纳率:100%
帮助的人:1452万
展开全部
用 Bulk Rename Utility 吧,功能强大,你的要求可以轻松解决
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式