我需要从特定年份中排除基于年份,国家名称和上次修改日期的文件,并从该特定年份中删除其余文件,并将该国家/地区移至存档文件夹
例如
在这种情况下,文件名和国家/地区不同,因此将排除特定的年份和最后修改日期,从而排除两个文件
想根据某人的经验知道某人是否可以举一个小例子...不一定是上述例子中的例子,也不必是任何多重排除规则,否则将不胜感激
有趣的是,我只有一个文件排除器语句,并且不知道基于文件名的多个文件排除器规则。
我只有一个文件排除语句
$sourcedir = 'C:\Test\Country'
$destdir = 'C:\Test\Country\Archive'
Get-ChildItem -File -Path $sourcedir |
Sort-Object -Property LastWriteTime -Descending |
Select-Object -Skip 1 |
Move-Item -Destination $destdir -force
谢谢
答案 0 :(得分:0)
我将其发布为答案,因为我没有人物来做评论。 让我看看我是否理解这一点。
$Files = Get-ChildItem -File C:\Setup | select Name, LastWriteTime
然后您将导出以下文件:
Name LastWriteTime
---- -------------
SS_MM_Master_Finland_2017.txt 6/27/2018 4:30:09 PM
SS_MM_Master_Finland_2018.txt 6/27/2018 4:30:09 PM
SS_MM_Master_Germany_2017.txt 6/27/2018 4:30:09 PM
SS_MM_Master_Germany_2018y.txt 6/27/2018 4:30:09 PM
SS_MM_Master_Italy_2017.txt 6/27/2018 4:30:09 PM
SS_MM_Master_Italy_2018.txt 6/27/2018 4:30:09 PM
然后您可以使用foreach进行以下操作:
foreach ($File in $Files) {
If ($File.Name -like "*Italy*" -and $File.Name -like "*2017*") {
Write-Host $File.Name
}
Else{
Write-Host "This is not the file you are looking for" $file.Name
}
}
我相信您可以理解此代码背后的概念。您可以将 Italy 替换为与Read-Host一起使用的变量,该变量针对if语句中的所有条件,然后如果满足,则将文件移至另一个文件夹。
希望这个答案对您有帮助。