2017-01-03 59 views
-1

我有像這樣有組織的文件名列表:(search.txt)
PowerShell的迭代文件內容遞歸目錄中匹配的文件名

2KJ34DS 
JSD92NS 
1JNKD8A 
KO1N231 
ASJDOA9 

我組織了一個目錄,如下所示:\\日誌\

20161201 
    .\ 
    K2J3N4K.xml 
    SDJNFK2.wav 
    ASDN1JE.html 
20161202 
20161203 
20161204 

在目錄中的過時文件夾的內容是我需要根據提供的列表,以匹配文件名search.txt文件。

我需要一個PowerShell腳本,它可以遍歷日期過的文件夾,並將找到的文件複製到目標「\\ logs \ matches \」。它應該匹配任何文件擴展名。如果我可以指定「開始日期」和「結束日期」,並且它僅在開始日期和結束日期內的日期文件夾之間迭代,那將是額外的好處。

我不知道從哪裏開始...任何人都可以幫忙嗎?

回答

1

喜嘗試像這樣(的PowerShell v3的最小值)的東西

$listfiles=get-content "c:\temp\search.txt" 
$destination="c:\logs\matches" 
$startdate=get-date -Year 2016 -Month 01 -Day 01 -Hour 0 -Minute 0 -Second 0 
$enddate=get-date -Year 2017 -Month 06 -Day 24 -Hour 0 -Minute 0 -Second 0 

Get-ChildItem -file -Recurse "c:\logs" | 
    where {$_.BaseName -in $listfiles -and $_.FullName -ne "$destination\$($_.Name)" -and $_.LastWriteTime -ge $startdate -and $_.LastWriteTime -le $enddate} | 
     Copy-Item -Destination $destination -Force 
+1

爲什麼V5?您沒有使用v3中沒有的單一功能? –

+0

你是對的;我錯誤地認爲「-file選項」自v5以來一直很活躍,因爲很少有人在這個網站上使用它,我的不好。謝謝你的信息,我修改我的出版物:) – Esperento57