这是受another post on Arqade的启发,关于如何使用批处理脚本备份一些文件。
以下块使用当前日期/时间字符串创建变量:
REM -- Get the current date/time stamp
set DS=%date%
set TS=%time: =0%
set mm=%DS:~4,2%
set dd=%DS:~7,2%
set yyyy=%DS:~10,4%
set hh=%TS:~0,2%
set min=%TS:~3,2%
set ss=%TS:~6,2%
set ms=%TS:~9,2%
set DT_STAMP=%yyyy%-%mm%-%dd%_%hh%.%min%.%ss%
作为脚本编写者,将这些内容合并为一行通常很方便。然而,在这种情况下,如果不是不可能的话,将其冷凝成单线是非常困难的。
似乎没有办法将多个set
命令放在一行上。使用&
或&&
分离命令工作正常,但右侧的命令不能依赖于先前在同一行上设置的变量。
另外,请注意time
变量必须如何将spaces
替换为零0
。似乎没有办法同时执行字符串替换并在同一行上获取子字符串。
有没有办法把它降到一条线?我能得到的最接近的是两条线:
set DS=%date% && set TS=%time: =0%
set DT_STAMP=%DS:~10,4%-%DS:~4,2%-%DS:~7,2%_%TS:~0,2%.%TS:~3,2%.%TS:~6,2%
这已经收集了一些好的答案;请允许我澄清接受的答案必须具备的内容: