2017-07-27 129 views
0

我正在使用PowerShell中的驅動器清理腳本。作爲其中的一部分,我使用Get-ChildItem cmdlet來獲取所有文件的列表。有很多(50k +)的文件。存儲變量vs輸出到文件

我已經將cmdlet的輸出引入CSV,認爲它會節省一些RAM。然後導入該CSV並逐行處理。我的理解是,只有CSV的當前行被加載到RAM中。那是對的嗎?

如果整個CSV被加載到RAM中,因爲它被處理,那麼這個問題是沒有意義的。在這種情況下,我只是將輸出放入一個變量中進行處理。

+1

它加載所有。你可以使用Get-ChildItem cmdlet – Ramankingdom

+2

50k的文件描述是沒有用的,不要打擾。 – wOxxOm

+0

此鏈接將完整幫助 https://stackoverflow.com/questions/33511772/read-file-line-by-line-in-powershell – Ramankingdom

回答

0

首先不打擾50k +數據。它不會佔用那麼多的內存。其次,它不會隨時加載行,除非您只指定加載該行。它會加載所有。第三,如果那麼重要,你可以考慮把它分成塊,這將幫助你減小尺寸。

如果獲得內容,它也會作爲一個整體加載。即使我們有一個尾巴swich