PowerShell在目录

时间:2017-01-03 17:52:53

标签: powershell match file-copying

我有一个像这样组织的文件名列表:(search.txt)

2KJ34DS
JSD92NS
1JNKD8A
KO1N231
ASJDOA9

我有一个如此组织的目录: \\ logs \

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

目录中日期文件夹的内容是我需要根据search.txt文件中提供的列表匹配的文件名。

我需要一个powershell脚本,它可以遍历过时的文件夹,并将找到的匹配文件复制到目的地" \\ logs \ matches \"。它应匹配任何文件扩展名。如果我可以指定一个"开始日期"这将是一个额外的好处。和"结束日期"它只在开始和结束日期之间的日期文件夹之间进行迭代。

我不知道从哪里开始......有人可以帮忙吗?

1 个答案:

答案 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