1
我想遍歷一組文件夾並將它們複製到PowerShell中的不同位置。所有的文件夾遵循以下命名約定:遍歷PowerShell中的文件
20160621
這顯然是寫在yyyymmdd
格式的一天。由於所有的文件夾遵循這個慣例,我的問題是我將如何說:複製上週的所有文件夾「?我想過使用(get-date).AddDays(-7)
,但我不確定如何識別文件夾名稱作爲日期對象而不是字符串。
我想遍歷一組文件夾並將它們複製到PowerShell中的不同位置。所有的文件夾遵循以下命名約定:遍歷PowerShell中的文件
20160621
這顯然是寫在yyyymmdd
格式的一天。由於所有的文件夾遵循這個慣例,我的問題是我將如何說:複製上週的所有文件夾「?我想過使用(get-date).AddDays(-7)
,但我不確定如何識別文件夾名稱作爲日期對象而不是字符串。
只需使用Get-ChildItem cmdlet來檢索文件,並使用Where-Object cmdlet的篩選。
下面的腳本結合了三種Where
條件
DateTime
對象,並確保早些時候然後七天前:腳本:
Get-ChildItem 'your_source' | Where-Object {
$_.PsIsContainer -and
$_.BaseName -match '\d{6}' -and
([DateTime]::ParseExact($_.BaseName, 'yyyyMMdd', $null) -gt (Get-Date).AddDays(-7))
} | Copy-Item -Destination 'Your_destination'
完美的作品!好吧,有幾種情況,目標中存在具有相同日期的文件夾。我會如何說「如果存在合併內容」? –
嘗試Copy-Item cmdlet –
會合並內容嗎? –