我有一个带有子目录的测试目录:
test-1-2 1.1
test-2-1 1.3
可以为测试中的每个子目录输出最新修改的子目录的名称和版本。假设DIR1或DIR2可以是任何名称。
最终视图更丰富:
test*-*-*
目前,我只能获得的输出只有最新的gci 'C:\test' |where { $_.psiscontainer } |foreach { get-childitem $_.name |sort creationtime | select -expand name -last 1 }
PS C:\test> gci 'C:\test' |where { $_.psiscontainer } |foreach { get-childitem $_.name |sort creationtime | select -expand name -last 1 }
test-1-2
test-2-1
而不是DIR *:
library(dplyr)
df_final = tableresults%>%
left_join(averagetable, by =c('winning_cluster' = ' Group.1')%>% # does the join
select(-Moving, - Feeding, -Standing) #unselect uncalled columns
答案 0 :(得分:-2)
我不太明白你的问题。您是否可以尝试重新表述该问题,或者给出更多/不同的示例?
我猜到了您要达到的目标。看下面的代码。
我假设您的文件夹结构将始终相同。输出将显示每个test- -文件夹中最新的名为“ DIR”的文件夹。我有点将文件夹的深度组织成“层次”,以期使事情更清晰。
我经常发现,与在管道中使用“ ForEach-Object”相比,使用ForEach和s脚本块可以使您更好地控制数据。
$Level1 = Get-ChildItem -Path "C:\test" -Directory
ForEach ($D1 in $Level1)
{
Write-Host "Getting ChildItem of DIR: $($D1.FullName)"
$Level2 = Get-ChildItem -Path $D1.FullName -Directory
ForEach ($D2 in $Level2)
{
Write-Host "Getting ChildItem of DIR: $($D2.FullName)`n`n"
$LastModDir = Get-ChildItem -Path $D2.FullName -Directory | Sort-Object CreationTime | Select-Object Name -Last 1
Write-Host "$D2 $($LastModDir.Name)"
}
}
输出:
test-1-1 DIR1
test-1-2 DIR2
test-2-1 DIR1
test-2-2 DIR2
即使这不是您要实现的目标,这些技术也可能对您实现目标有用。
编辑: 我只是注意到您要对1.1 etc文件夹而不是DIR文件夹进行排序。只需添加一个带有ForEach循环的“级别”即可。