0
下面的函數根據所選的最後寫入日期來平整目錄結構並複製文件。PowerShell Flatten目錄結構
function mega-copy($srcdir,$destdir,$startdate,$enddate)
{
$files = Get-ChildItem $SrcDir -recurse | Where-Object { $_.LastWriteTime -ge "$startdate" -and $_.LastWriteTime -le "$enddate" -and $_.PSIsContainer -eq $false };
$files|foreach($_) {
cp $_.Fullname ($destdir+$_.name) -Verbose
}
}
這是非常成功的小目錄,但嘗試使用它與多個子目錄和文件目錄時的計數範圍從幾十萬到幾千萬,它只是個攤位。我運行它並允許它靜置24小時,並且沒有複製單個文件,也沒有任何內容顯示在PowerShell控制檯窗口中。在這個特定的例子中,大約有2700萬個文件。
然而,一個簡單的批處理文件沒有任何問題完成了這項工作,儘管它非常慢。
我很感謝這裏的任何幫助。
不要使用中間變量: http://stackoverflow.com/a/39657987/3959875 – wOxxOm
這是robocopy可能更適合和喜歡wOxxOm說不要將文件保存在變量中的東西。使用管道。如果你至少有PowerShell 3.0,你也可以使用Get-Childitem的'-File'開關。 – Matt
不錯。你們兩個都向我提供了相關的信息,似乎減少了用這種方法移動大量數據所需的時間。非常感謝。 – GreatMagusKyros