PowerShell 拷貝某段時間內的檔案

2021-07-09 16:23:52 字數 968 閱讀 1904

使用 windows 進行備份,需要備份某一段時間內的檔案。但是使用原始的批處理(bat)計算比較麻煩,如之前的文章 forfiles 和 xcopy 在windows下拷貝n天內更改過的檔案 。所以尋找了更簡單的方法,可以使用 powershell 來計算需要拷貝的檔案。指令碼編寫好後可以使用 windows 任務計畫程式定時執行 powershell 指令碼 。

以下為簡單的處理指令碼:拷貝當天(0天內)1小時內的日誌檔案到其他目錄中

<#

get-executionpolicy

set-executionpolicy unrestricted

function:拷貝n天或n小時內的檔案

author:hzc

createdate: 2016/01/27

#>

$sourcedir = "d:\日誌備份"

$destinationdir = "e:\備份\log"

$adddays = 0 #增加的天數,可正可負

$addhours = -1 #增加的小時,可正可負

$sourcefilearray = get-childitem -path $sourcedir -recurse | where-object -filterscript | select-object -expandproperty name

$date = get-date

write-host "$date 拷貝開始……"

foreach ( $file in $sourcefilearray )

$date = get-date

write-host "$date 拷貝完成!"

其實還可以設定更精確,參考函式:addyears、addmonths、adddays、addhours、addminutes、addseconds、addmilliseconds、addticks

淺拷貝,深拷貝,寫時拷貝

淺拷貝 拷貝構造時複製指標僅僅是對指標的值拷貝,而不開闢新的空間這樣就會造成在析構的時候。會對同一塊記憶體釋放兩次。深拷貝 拷貝構造時會開闢新的記憶體,並把記憶體中的值進行拷貝 寫時拷貝 就是當你在讀取一片空間時,系統並不會為你開闢乙個一模一樣的空間給你 只有在當你真正修改的時候,才會開闢一片空間給...

深拷貝 淺拷貝 寫時拷貝

在拷貝構造的時候,直接將原內容的位址交給要拷貝的類,兩個類共同指向一塊記憶體。缺陷 1 一旦對str2進行操作,str1的內容也會改變 2 析構時先析構str2,再析構str1,但是由於str1,str2指向同一塊記憶體空間,因此會導致對一塊記憶體進行兩次析構而出現錯誤 通過開闢和源空間大小相同的記...

淺拷貝,深拷貝,寫時拷貝

思想 我們用指標p申請了一塊記憶體空間,在用指標q指向了這一片記憶體空間,這時候這兩個指標指向的是同乙個記憶體空間,當需要釋放這塊記憶體空間的時候p會釋放一次,q也會釋放一次,這樣重複釋放就會引發程式的崩潰。我們通過一段 來理解淺拷貝 class person void test int main ...