标题: [文件操作] 批处理怎样截取文件修改时间的年月日部分批量重命名? [打印本页]
作者: llqcnw 时间: 2021-6-5 08:09 标题: 批处理怎样截取文件修改时间的年月日部分批量重命名?
一个文件夹内有多个txt文件,如何获取每个文件的修改时间,再截取修改时间的年月日部分(就是去掉后面的小时和分钟),将文件名变更为截取后的修改时间。
比如 三个文件 1.txt 2.txt 3.txt
文件的修改时间分别是 2021-01-08,17:02:14 2021-02-08,17:02:14 2021-03-08,17:02:14
最终修改为 2021-01-08.txt 2021-02-08.txt 2021-03-08.txt
作者: qixiaobin0715 时间: 2021-6-5 08:39
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
- for /f "tokens=1-3 delims=/ " %%a in ("%%~ti") do set str=%%a-%%b-%%c
- ren "%%i" "!str!%%~xi"
- )
- pause
复制代码
作者: llqcnw 时间: 2021-6-5 09:30
回复 2# qixiaobin0715
运行后 提示 三行 存在一个重名文件,或是找不到文件
作者: llqcnw 时间: 2021-6-5 09:55
回复 3# llqcnw
我可以先获取修改时间,然后用 delims=空格 截取出修改时间前面的年月日部分后重命名吗
作者: qixiaobin0715 时间: 2021-6-5 09:58
不同系统时间显示格式可能会有差别。
你在代码第3/4行之间加入一行代码:echo,%%~ti。
看看时间显示格式,可自己修改下面代码。
如果有几个文件修改时间相同,就会有重名文件,很正常啊。
作者: qixiaobin0715 时间: 2021-6-5 10:08
把这行代码ren "%%i" "!str!%%~xi"修改为:echo,ren "%%i" "!str!%%~xi"看看是否有重名文件。
作者: llqcnw 时间: 2021-6-5 10:23
回复 6# qixiaobin0715
三个文件的修改日期不是同一天了,加上echo后 显示的也不是同一个日期,但后面没有实现 就是pasue后就没有反应,实际没有更名
另外问一下 不截取年月日 直接获取文件的修改时间后重命名 用 for /f %%i in ('dir /b *.txt') do ren %%i %%~ti.txt 有什么问题? 提示命令语法不正确
作者: newswan 时间: 2021-6-5 11:10
复制代码
加引号,文件名有空格?
作者: Batcher 时间: 2021-6-5 11:20
回复 7# llqcnw
如果8楼的方法仍未解决你的问题,请参考Q-01观察一下哪行代码在报错以及详细的报错信息:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
作者: llqcnw 时间: 2021-6-5 11:32
回复 8# newswan
文件名里没有空格, 文件的修改日期也不是同一天 加引号后 还是提示 存在一个重名文件或找不到文件
作者: qixiaobin0715 时间: 2021-6-5 11:34
日期格式中有/:,不能出现在文件名中。
作者: newswan 时间: 2021-6-5 11:43
- echo ren "%%i" "%%~ti.txt"
复制代码
输出试试
看看9楼,怎么调试
作者: qixiaobin0715 时间: 2021-6-5 11:46
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
- set str=%%~ti
- set "str=!str:/=-!"
- set "str=!str::=-!"
- ren "%%i" "!str!%%~xi"
- )
- pause
复制代码
作者: llqcnw 时间: 2021-6-5 14:52
回复 13# qixiaobin0715
这个好用,谢谢!
能问一下
set "str=!str:/=-!"
set "str=!str::=-!"
这两句语句是什么意思?
作者: newswan 时间: 2021-6-5 15:39
回复 14# llqcnw
去看教程 字符串替换
作者: llqcnw 时间: 2021-6-5 15:41
回复 15# newswan
好的 谢谢
作者: ww0000 时间: 2023-5-10 11:28
回复 13# qixiaobin0715
请问老师,如何截取修改时间的日期部分并加睛原文件名前面?
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |