Windows 批处理文件 ren 使用日期变量
Windows batch file ren using date variable
前阵子在学校学过batch,到现在还没用过b/c灵机一动。只是为了好玩,我想用我的新笔记本电脑弄乱 powercfg batteryreport,但我想存档。我打算尝试弄清楚如何让文件 powercfg batteryreport 吐出以某种数字顺序更改,但我什至不知道从哪里开始,所以我决定只创建一个新行来获取当前创建的文件并添加日期。所有这些都发生在我创建的一个特殊文件夹中,因此不需要路径。
@echo off
powercfg batteryreport
rename "battery-report.html" "batteryreport %date%.html"
这个确切的脚本在没有日期变量的情况下工作,但从来没有用过它,但当然我需要一个变量来保存多个报告,而不是每次都重写它自己。我试过弄乱所有间距,引号与不引号,没有运气。帮助(或更好的方法,最好有解释)将不胜感激。
很有可能,您的 date
格式包含 /
,这在文件名中是非法的。
使用 %date:/=-%
代替 %date%
。这会将每个 /
转换为 -
(请参阅 docco 提示中的 set /?
)
同样,您可以使用 %time::=.%
o 将时间转换为可在文件名中使用的版本。
要删除dayname,您需要使用一个中间变量:
set "dateonly=%date:* =%"
ren ... "...%dateonly:/=-%..."
*
的意思是 "all of the characters up to and including the first space",这被替换为 nothing(=
之后的字符串)
有关详细信息,请参阅提示中的 set /?
。
前阵子在学校学过batch,到现在还没用过b/c灵机一动。只是为了好玩,我想用我的新笔记本电脑弄乱 powercfg batteryreport,但我想存档。我打算尝试弄清楚如何让文件 powercfg batteryreport 吐出以某种数字顺序更改,但我什至不知道从哪里开始,所以我决定只创建一个新行来获取当前创建的文件并添加日期。所有这些都发生在我创建的一个特殊文件夹中,因此不需要路径。
@echo off
powercfg batteryreport
rename "battery-report.html" "batteryreport %date%.html"
这个确切的脚本在没有日期变量的情况下工作,但从来没有用过它,但当然我需要一个变量来保存多个报告,而不是每次都重写它自己。我试过弄乱所有间距,引号与不引号,没有运气。帮助(或更好的方法,最好有解释)将不胜感激。
很有可能,您的 date
格式包含 /
,这在文件名中是非法的。
使用 %date:/=-%
代替 %date%
。这会将每个 /
转换为 -
(请参阅 docco 提示中的 set /?
)
同样,您可以使用 %time::=.%
o 将时间转换为可在文件名中使用的版本。
要删除dayname,您需要使用一个中间变量:
set "dateonly=%date:* =%"
ren ... "...%dateonly:/=-%..."
*
的意思是 "all of the characters up to and including the first space",这被替换为 nothing(=
之后的字符串)
有关详细信息,请参阅提示中的 set /?
。