Windows批处理文件使用日期变量

时间:2017-07-27 23:34:37

标签: batch-file variables file-rename

前一段时间在学校学到了批次,直到现在还没有用过它b / c我有个主意。只是为了好玩,我想用我的新笔记本电脑搞乱powercfg batteryreport,但我想存档。我打算尝试弄清楚如何让文件powercfg batteryreport spits out以某种数字顺序改变,但我甚至不知道从哪里开始,所以我决定只创建一个新行来创建当前文件并添加日期。所有这些都发生在我创建的特殊文件夹中,因此不需要路径。

    @echo off
    powercfg batteryreport
    rename "battery-report.html" "batteryreport %date%.html"

这个确切的脚本在没有日期变量的情况下工作,但从不使用它,但当然我需要一个变量存在才能保存多个报告,而不是每次都自己写。我已经尝试搞乱所有间距,报价与没有报价,没有运气。非常感谢帮助(或更好的方式,最好有解释)。

1 个答案:

答案 0 :(得分:0)

您的date格式很可能包含/,这在文件名中是非法的。

使用%date:/=-%代替%date%。这会将每个/转换为-(请参阅docco提示中的set /?

同样,您可以使用%time::=.%将时间转换为文件名中可用的版本。

要删除dayname,您需要使用中间变量:

set "dateonly=%date:* =%"
ren ... "...%dateonly:/=-%..."

*表示“包含第一个空格的所有字符”,并且由 nothing =后面的字符串)

请参阅提示中的set /?了解详细信息。