标题: [日期时间] 批处理如何将文件的最后修改时间按指定格式添加到文件名的后面? [打印本页]
作者: wslbbdb 时间: 2016-4-23 14:13 标题: 批处理如何将文件的最后修改时间按指定格式添加到文件名的后面?
本帖最后由 pcl_test 于 2016-4-24 13:47 编辑
有个问题请教大神:批处理将文件属性中的修改时间添加到文件名的后面去?如:"行走记录.txt"的修改时间是2016-03-15 11:25,
文件名变成"行走记录2016年03月15日11点25分.txt"
请大侠赐教,小女不胜感激!!
作者: Nsqs 时间: 2016-4-23 16:35
- @echo off&pushd %~dp0&call set "ext=txt"
- for /f "delims=" %%1 in ('dir/a-d/b *.%ext%')do for /f "tokens=1-5 delims=:/- " %%2 in ("%%~t1")do ren %%1 %%~n1%%2年%%3月%%4日%%5点%%6分%%~x1
复制代码
作者: CrLf 时间: 2016-4-24 08:42
- @dir /b /a-d | hash /g con /do:"echo ren ""%s"" ""%s%s.%s""",file,@name:base,tw:"%Y年%m月%d日%H时%M分",@name:ext
复制代码
作者: wslbbdb 时间: 2016-4-24 16:21
@echo off&pushd %~dp0&call set "ext=txt"
for /f "delims=" %%1 in ('dir/a-d/b *.%ext%')do for /f "tokens=1-5 delims=:/- " %%2 in ("%%~t1")do ren %%1 %%~n1%%2年%%3月%%4日%%5点%%6分%%~x1
谢谢你!帮了我大忙了!
作者: wslbbdb 时间: 2016-4-24 17:35
还有一个问题啊:我想要的效果是文件名中只加入最新的修改日期和时间,文件名中以前的日期自动删除,只保留最新的修改日期,怎么办呢?
作者: wslbbdb 时间: 2016-4-24 17:40
只修改当前目录下的文件,不修改子目录中的文件!就这些了,大神帮帮我啊!
作者: happy886rr 时间: 2016-4-24 18:10
本帖最后由 happy886rr 于 2016-4-24 18:21 编辑
回复 6# wslbbdb
弦上之箭- setlocal enabledelayedexpansion&for %%a in (*.txt) do (set "n=%%~na"&set "t=%%~ta"&ren "%%a" "!n:~0,-17!!t:~0,4!年!t:~5,2!月!t:~8,2!日!t:~-5,2!点!t:~-2!分%%~xa")
复制代码
作者: Nsqs 时间: 2016-4-24 18:59
回复 7# happy886rr
这样是错的
作者: happy886rr 时间: 2016-4-24 19:47
回复 8# Nsqs
我的代码是在他用过你的代码之后,才能使用。好似弦上之箭。
作者: WHY 时间: 2016-4-25 23:02
本帖最后由 WHY 于 2016-4-26 08:39 编辑
- dir *.txt | ren -newName {
- $d = $_.LastWriteTime.ToString('yyyy年MM月dd日HH点mm分');
- $_.Name -replace '(\d{4}年\d+月\d+日\d+点\d+分)?(\.txt)$', ($d + '$2')
- }
复制代码
作者: Nsqs 时间: 2016-4-30 03:00
回复 9# happy886rr
然而他的问题在你写代码之前就私信给我了
作者: pcl_test 时间: 2016-7-15 23:55
本帖最后由 pcl_test 于 2016-7-15 23:57 编辑
- /*&cls
- @echo off
- dir /a-d /b *.txt|cscript -nologo -e:jscript "%~f0"
- pause&exit
- */
-
- function az(n){return n<10?'0'+n:n;}
-
- function FormatDate(str){
- var dlm = new Date(str);
- var y = dlm.getFullYear()+'年';
- var M = az(dlm.getMonth()+1)+'月';
- var d = az(dlm.getDate())+'日';
- var h = az(dlm.getHours())+'时';
- var m = az(dlm.getMinutes())+'分';
- return y+M+d+h+m;
- }
-
- var fso = new ActiveXObject('Scripting.FileSystemObject');
- while(!WSH.StdIn.AtEndOfStream){
- var file = fso.GetFile(WSH.StdIn.ReadLine());
- var dlm = FormatDate(file.DateLastModified);
- if(/(\d{4}年\d+月\d+日\d+时\d+分)\.[^\.]+$/.test(file.Name)){
- if(RegExp.$1 != dlm){
- file.Name = file.Name.replace(/(.+)\d{4}年\d+月\d+日\d+时\d+分(\.[^\.]+)/, '$1'+dlm+'$2');
- }
- }else{
- file.Name = file.Name.replace(/(.+)(\.[^\.]+)/, '$1'+dlm+'$2')
- }
- }
- WSH.echo('Done');
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |