powershell - PowerShell中的多个排除规则
问题描述
我需要根据该特定年份的年份、国家名称和最后修改日期排除文件,以及该特定年份的其余文件和该国家/地区移至存档文件夹
举个例子
- SS_MM_Master_finland_2018.xlsx 最后修改日期 27/06/2018 19:00。
- SS_MM_Master_finland_2017.xlsx 最后修改日期 27/06/2017 19:00。
在这种情况下,相同的国家和年份的文件名不同,因此特定年份的最后修改日期将被排除在外,因此这两个文件都将被排除在外
想知道是否有人可以根据他们的经验举一个小例子......不必来自上述例子或任何多重排除规则或任何贡献将不胜感激
有趣的是,我只有单个文件排除器语句并且不知道基于文件名的多文件排除器规则,任何示例都适用
我只有单个文件排除语句
$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
谢谢
解决方案
我将此作为答案发布,因为我没有角色可以将其作为评论。让我看看我是否明白这一点。
$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
}
}
相信你能理解这段代码背后的概念。您可以将意大利替换为您可以使用 Read-Host 执行的变量,该变量适用于 if 语句中的所有条件,然后如果这些条件为真,则将文件移动到另一个文件夹。
希望这个答案对您有所帮助。
推荐阅读
- postgresql - Postgres 正在插入 '$,?' 代替表格中我的地址字段中的文本。是编码问题还是其他问题?
- mysql - 连接两个表后的 SQL 更新 - 不工作
- javascript - 仅在应用程序中动态更改特定的字体大小
- string - 在 VB.NET 中限制 List(Of String) 中的元素数量
- jquery - Tablesorter 未在 Django 中加载
- python-3.x - 与带有参数的 build_fn 一起使用的 KerasClassifier
- javascript - 如何在没有按钮的情况下使用javascript在html表中执行计算(表是在输入值上创建的)?
- amazon-ec2 - Amazon EMR vs EC2 用于卸载 BI 和分析 2018 年
- node.js - 无法使用 https 对同一服务器上的应用程序进行 api 调用
- android - 用于从 EPFO 站点显示的 UAN 详细信息的 API