从文件夹中选择最新文件并使用powershell脚本将其复制到另一个文件

时间:2012-06-05 23:06:47

标签: powershell

我是PowerShell脚本的新手,需要一些帮助。

我们有一个文件夹\Output。它将具有以下格式的文件:

abc_1.dat
abc_2.dat
xyz_1.dat
abc_3.dat
pqr_2.dat
......

现在我想找到以“abc”开头的最新文件(例如,abc_3.dat)并将数据复制到abc.dat。同样适用于xyz和pqr。这些文件将继续添加。

1 个答案:

答案 0 :(得分:1)

首先,您需要找到唯一前缀列表:

$prefixes = Get-ChildItem \Output | 
    Where-Object { -not $_.PsIsContainer } |
    Foreach-Object { $_.Name.Substring(0, 3) } |
    Select-Object -Unique

然后,对于每个前缀,找到最新/最高编号并将其复制到首选文件:

$latest = $prefixes | 
    Foreach-Object { 
        Join-Path \Output "$_*" |
        Get-ChildItem |
        Add-Member NoteProperty -Name ID -Value { [int] ($_.BaseName -split '_')[1] } -PassThru |
        Sort-Object ID -Descending |
        Select-Object -First |
        Copy-Item -Destination \Output\$_.dat
    }