我想我已经咬掉了很多东西,而不是咀嚼。在CMD中重命名包含文件日期的文件
我是法庭记者,在明尼苏达法院系统工作。我们制定了一项新政策来提交我们的电子票据,因为许多记者不再打印纸质记录。不同品牌的报告机器创建具有不同命名约定的文件,并且我们希望将名称标准化,以便地区管理部门的人员可以在我们不在的时候轻松找到合适的注释。
因此,我们想要将FILE.001,FILE.002和20151018-082815.sgstn重命名为文件的创建日期。 sgstn文件当然有一个独特的名字,但创建FILE。*文件的无处不在的编写者确实需要重命名,而标准化将帮助所有人。我正在创建一个CMD文件,该文件也将调查法官的姓名和作家品牌,因此,任何从存储中拉出笔记的人都会发现他们正在寻找的内容:“2015-10-18 Judder Jones,Stentura作家。 001“
我发现很多用今天的日期和时间重命名文件的解决方案,但我们想用他们自己的日期和时间重命名它们。
我正在使用Windows 7 Pro中的标准用户,并且没有安装第三方软件的选项。 Windows允许个人用户设置他们的首选日期样式,并dbenham和其他人在这里向我展示了如何从注册表中获得该样式:
:: For REG.EXE 3.0 (Windows XP) and later versions
FOR /F "tokens=3" %%A IN (
'REG QUERY "HKCU\Control Panel\International" /v sShortDate'
) DO (SET sShortDate=%%A)
Echo %sShortDate%
,将返回YYYY-MM-DD或DM-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快捷方式上丢弃的文件?
最后,这是我的第一篇文章。所有建设性的批评都很乐意接受。认真。
- 蒂莫西J.麦高恩
编辑补充: 也许我已经被这个得太多。这是用户在注册表中用于调查日期格式的配置单元。我们应该能够从命令行写入我们自己的蜂巢;对?
所以我可以读取用户的首选日期格式,将其保存到变量中,强制使用我想使用的日期格式,处理这些文件,然后重置用户的日期格式。对?值得一试。
我会报告回来,如果它的工作,但任何更多的意见是值得欢迎的!
如果可以这样做,如果以vbscript或powershell或者几乎任何实际的编程语言实现,这将更加可靠。虽然你可以批量处理很多东西,但它并不是真正为此设计的。 (我特别建议vbscript和powershell主要是因为它们内置于Windows中。) –
谢谢,Harry。还没有进展到VBScript或PowerShell。在PerfectScript中很容易,但我从来没有用过Word,只是WordPerfect。我怀疑我可以让整个政府部门使用不同的文字处理器。 :) –