2017-03-29 122 views
0

我有以下代碼從查詢中導出CSV文件。 如何在文件路徑中的文件末尾添加「獲取日期」(今天)標記?在Powershell輸出中添加時間戳

$ds.Tables[0] | Export-csv -delimiter ";" -path "C:\temp\TempWarehousingControl.csv" -NoTypeInformation -Force -Encoding UTF8 
Get-Content C:\temp\TempWarehousingControl.csv | %{ $_ -replace """""", "NULL"} |%{ $_ -replace """", ""} | out-file -FilePath C:\Batch\Output\WarehousingControl\WarehousingControl.csv -Force -Encoding utf8 
+1

你是什麼意思?爲CSV文件本身或其名稱追加一個時間戳? – vonPryz

回答

0
$path = "C:\Batch\Output\WarehousingControl\WarehousingControl.csv" 
$path = $path.Replace(".csv", "_" + (Get-Date -f "yyy-MM-dd") + ".csv") 

$ds.Tables[0] | 
    Export-csv -delimiter ";" -path "C:\temp\TempWarehousingControl.csv" -NoTypeInformation -Force -Encoding UTF8 

Get-Content C:\temp\TempWarehousingControl.csv | 
    %{ $_ -replace """""", "NULL"} | 
    %{ $_ -replace """", ""} | 
    Out-File -FilePath $path -Force -Encoding utf8 
1

假設你的意思是「我怎麼添加今天的日期文件路徑的盡頭」(相對於該文件的結尾),這將做到這一點:

"C:\Batch\Output\WarehousingControl\WarehousingControl-$(get-date -Format 'dd-MM-yyyy').csv" 

包括在你的全碼:

$ds.Tables[0] | Export-csv -delimiter ";" -path "C:\temp\TempWarehousingControl.csv" -NoTypeInformation -Force -Encoding UTF8 
Get-Content C:\temp\TempWarehousingControl.csv | %{ $_ -replace """""", "NULL"} |%{ $_ -replace """", ""} | out-file -FilePath "C:\Batch\Output\WarehousingControl\WarehousingControl-$(get-date -Format 'dd-MM-yyyy').csv" -Force -Encoding utf8 

說明:

這是一個子表達式$(),它使用get-date來獲取當前日期並將其格式化爲dd-MM-yyyy(注意month是大寫的M,因爲小寫的m是分鐘的代碼)。

+0

謝謝!我雖然在最後一行得到語法錯誤。我寫過這樣的: Get-Content C:\ TEMP \ TransactionsControl \ TempLargeWithdrawals.csv | %{$ _ -replace「」「」「」,「NULL」} |%{$ _ -replace「」「」,「」} | out-file -FilePath「C:\ Batch \ Output \ WarehousingControl \ LargeWithdrawals - $(get-date -Format」dd-MM-yyyy「)。csv」-Force -Encoding utf8 – Haggan

+0

對不起應該使用單引號-MM-yyyy部分。試試這個:「C:\ Batch \ Output \ WarehousingControl \ WarehousingControl - $(get-date -Format'dd-MM-yyyy')。csv」 –

+0

語法錯誤:/。其他可能不正確的東西? – Haggan