我是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。这些文件将继续添加。
答案 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
}