加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 在CMD中重命名文件日期的文件

发布时间:2020-12-14 02:21:14 所属栏目:Windows 来源:网络整理
导读:我觉得我咬的比我咬得多得多. 我是一名宫廷记者,在明尼苏达州法院系统工作.我们制定了新的电子票据提交政策,因为许多记者不再打印纸质票据.不同品牌的报告机器创建具有不同命名约定的文件,并且我们希望标准化名称,以便区管理中的某人可以轻松地找到正确的注
我觉得我咬的比我咬得多得多.

我是一名宫廷记者,在明尼苏达州法院系统工作.我们制定了新的电子票据提交政策,因为许多记者不再打印纸质票据.不同品牌的报告机器创建具有不同命名约定的文件,并且我们希望标准化名称,以便区管理中的某人可以轻松地找到正确的注释(如果我们不在身边).

因此,我们要将FILE.001,FILE.002和20151018-082815.sgstn重命名为文件创建日期.当然,sgstn文件有一个唯一的名称,但创建FILE.*文件的无处不在的编写者确实需要重命名,标准化将帮助所有人.我正在创建一个CMD文件,该文件也将对法官的姓名和作家品牌进行民意调查,因此任何从存储中取出笔记的人都会找到他们正在寻找的内容:“2015-10-18琼斯法官,Stentura作家. 001”

我发现有很多解决方案可以使用TODAY的日期和时间重命名文件,但是我们希望用他们自己的日期和时间重命名它们.

我是Windows 7 Pro中的标准用户,无法安装第三方软件. Windows允许个人用户设置他们的首选日期样式,dbenham和其他人在这里向我展示了如何从注册表中获取该样式:

:: For REG.EXE 3.0 (Windows XP) and later versions
FOR /F "tokens=3" %%A IN (
  'REG QUERY "HKCUControl PanelInternational" /v sShortDate'
  ) DO (SET sShortDate=%%A)
Echo %sShortDate%

这将返回yyyy-MM-dd或d-M-yy或用户选择的任何内容.

然后我可以测试以查看字符串的不同部分的内容:

for /f "tokens=1,2,3 delims=/-" %%A in ("%sShortDate%") do (
    for /f "tokens=1" %%D in ("%%A") do (
        set Part1=%%D
    )
    for /f "tokens=1" %%D in ("%%B") do (
        set Part2=%%D
    )
    for /f "tokens=1" %%D in ("%%C") do (
        set Part3=%%D
    )
)
echo Part1 = %Part1%
echo Part2 = %Part2%
echo Part3 = %Part3%

但这一切都变得非常笨拙,而且在这里和其他地方经过24小时阅读后,我只有一半的时间.在Windows中,在CMD提示符或任何命令行可用工具中,是否真的没办法以可预测的格式获取文件的日期并使用该日期?

任何人都可以怜悯我并给我们一个不那么繁琐的方法来找出用户的特定系统认为日期应格式化为什么,从而一致地重命名所有丢弃在CMD快捷方式上的文件?

最后,这是我在这里的第一篇文章.所有建设性的批评都乐意接受.认真.

– Timothy J. McGowan

编辑添加:
也许我一直在思考这个问题.它是注册表中用户的配置单元,我正在轮询日期格式.我们应该能够从命令行写入我们自己的配置单元;对?

所以我可以读取用户的首选日期格式,将其保存到变量,强制使用我想要使用的日期格式,处理文件,然后重置用户的日期格式.对?值得一试.

我会报告它是否有效,但是更多的评论非常受欢迎!

解决方法

第一个想法:

使用分隔符获取文件日期或名称或扩展名

@echo off

setlocal enabledelayedexpansion

for %%a in (*.*) do (
  set "$FileName=%%~na"
  set "$FileExtension=%%~xa"
  set "$FileDate=%%~ta"
  set "$FileDate=!$FileDate:/=-!"
  echo !$FileDate!-!$FileName!!$FileExtension!)

编辑我

要在YYYY-MM-DD中获取日期:

@echo off

setlocal enabledelayedexpansion

for %%a in (*.*) do (
  set "$FileName=%%~na"
  set "$FileExtension=%%~xa"
  set "$FileDate=%%~ta"
  set "$FileDate=!$FileDate:/=-!"
  set "$FileDate=!$FileDate:~6,4!-!$FileDate:~3,2!-!$FileDate:~0,2!"
  echo !$FileDate!-!$FileName!!$FileExtension!)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读