我觉得自己承担的任务太多了。
我是明尼苏达州法院系统的一名法庭记录员。我们制定了一个新的政策,用于提交我们的电子笔记,因为许多记录员不再打印纸质笔记。不同品牌的记录机器创建的文件具有不同的命名约定,我们希望标准化名称,以便在我们不在场时,地区管理人员可以轻松找到正确的笔记。
因此,我们想将FILE.001、FILE.002和20151018-082815.sgstn等文件重命名为创建文件的日期。当然,sgstn文件具有唯一的名称,但创造FILE.*文件的普及作者确实需要重命名,标准化将有助于所有人。我正在创建一个CMD文件,还会查询法官的姓名和作者品牌,以便从存储中取出笔记的任何人都能找到他们要寻找的内容:“2015-10-18 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或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
编辑以添加: 也许我想太多了。我正在轮询注册表中的用户Hive以获取日期格式。我们应该能够从命令行写入自己的 Hive,对吗?
所以我可以读取用户首选日期格式,将其保存到变量中,强制使用我想要使用的日期格式,处理文件,然后重置用户的日期格式。对吗?值得一试。
如果它有效,我会回报的,但是任何其他评论都非常受欢迎!