批处理文件 - 将计算的日期添加到文件末尾

时间:2016-08-15 17:45:14

标签: powershell batch-file

您好,感谢您提前帮助!我需要一些与我正用于在.xlsx文件末尾添加日期的批处理脚本相关的专家帮助。

我当前的脚本工作正常并将当前日期添加到文件的末尾,但我需要的是将当前日期减去12天,以及当前日期减去6天,添加到结尾文件格式如下:

Test 20160807-20160813.xlsx. 

因此它的文件名为Test,然后是YYYYMMDD (minus 12) - YYYYMMDD (minus 6).xlsx

这是我正在使用的脚本,它获取当前日期:

setlocal enabledelayedexpansion

for %%F in ("C:\test*.xlsx") do ( set "MDate=%%~tF" 
set "ParsedDate=!MDate:~6,4!!MDate:~0,2!!MDate:~3,2!" copy %%F%%~dpnF!ParsedDate!%%~xF.new )

for %%F in ("C:\test*.xlsx") do ( del %%F )

ren "C:\test*.new" *.

exit

输出为Test20160815.xlsx,但我需要Test 20160807-20160813.xlsx。有人可以帮我解决我做错的事吗?

1 个答案:

答案 0 :(得分:0)

PowerShell中的简单示例:

$today = [DateTime]::Today
$date1 = $today.AddDays(-12)
$date2 = $today.AddDays(-6)
"Test {0:yyyyMMdd}-{1:yyyyMMdd}.xlsx" -f ($date1),($date2)

在PowerShell中,日期不是字符串。它们是一流的物体。在此示例中,$today被赋予今天的日期([DateTime]对象,而不是字符串)。 $date1在今天的日期前12天到达,$date2在今天的日期前6天到达。最后一行代码使用PowerShell的格式(-f)运算符输出包含所需格式的日期的自定义字符串。