2016-11-21 161 views
1

我正在編寫一個PowerShell腳本來收集F5 LTM設備統計信息並通過Excel打開它。但在那裏,我得到了時間戳列,我想更改爲人類可讀的日期時間。我可以通過Excel公式=(A2/86400)+25569+(-5/24)手動更改它,然後格式化單元格到日期。之後,我可以將其更改爲人類可讀的日期時間。將Excel時間戳整列轉換爲日期時間的Powershell腳本

我的腳本如下:

# Allocate a new Query Object 
    $Query = New-Object -TypeName iControl.SystemStatisticsPerformanceStatisticQuery 
    $Query.object_name = "throughput" 
    $Query.start_time = 1479686400 
    $Query.end_time = 1480327200 
    $Query.interval = 0 
    $Query.maximum_rows = 0 
+0

在日期列後面插入一個新列,在新列的左邊有值的所有單元格中輸入公式,複製列,粘貼值,格式,然後刪除第一列。將這些步驟記錄爲一個宏,並將其轉換爲PowerShell(有關翻譯準則,請參見[這裏](http://sdb.planetcobalt.net/vba2psh.shtml))。 –

+0

謝謝。我試過這個,但是當我添加公式時,它會在列b的所有單元格中粘貼相同的值。 =(A2/86400)+25569 +( - 5/24)例如,它在列B的所有單元格中使用A2值。有沒有一種方法可以通過shell腳本使用excel的拖動功能。 ? – user2769144

+0

Shell腳本完全是別的。你應該能夠記錄自動填充單元格。否則,進入一個循環,在每個單元格中將公式與增量索引放在一起。 –

回答

1

輸入公式到400個細胞是要採取如果你要遍歷所有單元格,輸入公式爲他們每個人的相當長的一段時間。使用Excel自動填充機制要快得多。

$ws.Range("B2").Formula = "=(A2/86400)+25569+(-5/24)" 
$ws.Range("B2").AutoFill($ws.Range("B2:B400"), 0) 
+0

謝謝Ansgar,它的工作。此外,如果你看到我的腳本,我將開始時間和結束時間作爲「時間戳」傳遞,爲此,我必須手動將日期時間通過在線計算器轉換爲時間戳,然後我必須在腳本執行前粘貼它。是否有可能,如果我運行這個腳本,它會獲取過去7天的數據?例如,我必須運行此腳本每週一早上從上週星期一到星期日晚上12點獲取數據,或者直到我運行腳本爲止 – user2769144

+0

要將常規時間戳轉換爲時期,請參見[此問題](http ://stackoverflow.com/q/4192971/1630171)。 –