我有一个像这样组织的文件名列表:(search.txt)
2KJ34DS
JSD92NS
1JNKD8A
KO1N231
ASJDOA9
我有一个如此组织的目录: \\ logs \
20161201
.\
K2J3N4K.xml
SDJNFK2.wav
ASDN1JE.html
20161202
20161203
20161204
目录中日期文件夹的内容是我需要根据search.txt文件中提供的列表匹配的文件名。
我需要一个powershell脚本,它可以遍历过时的文件夹,并将找到的匹配文件复制到目的地" \\ logs \ matches \"。它应匹配任何文件扩展名。如果我可以指定一个"开始日期"这将是一个额外的好处。和"结束日期"它只在开始和结束日期之间的日期文件夹之间进行迭代。
我不知道从哪里开始......有人可以帮忙吗?
答案 0 :(得分: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