2016-08-15 25 views
0

您好,感謝您提前提供任何幫助!我需要一些與我正在使用的批處理腳本相關的專家幫助來將日期添加到.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。有人能幫我解決我做錯了什麼嗎?在PowerShell中

+4

如果您使用PowerShell而不是嘗試在批處理(shell腳本)中進行日期算術運算,這會更容易。 –

+0

感謝您輸入Bill,您能否在PowerShell中提供解決方案? –

+0

您可以將其他腳本嵌入到支持真正的日期/時間算法的[tag:batch-file]中,如VBScript或JavaScript;當然,PowerShell也可以實現... – aschipfl

回答

0

簡單的例子:

$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)運算符輸出包含所需格式日期的自定義字符串。

相關問題