2

我是 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 也是如此。这些文件将继续添加。

4

1 回答 1

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
    }
于 2012-06-05T23:49:43.897 回答