Мне нужно, чтобы расширение было добавлено к.. *, Чтобы возвращать все файлы в заданной исходной папке с LastWriteTime из $ lwt, как показано в коде. Пользователь может либо предоставить конкретное расширение, например «.csv», но одно не предусмотрено, тогда скрипт будет просто искать все файлы. Но я не могу сопоставить расширение с «. *», Чтобы вернуть все файлы.Соответствие расширений файлов Powershell. *
[CmdletBinding()]
param (
[Parameter(Mandatory=$true)][string]$source,
[Parameter(Mandatory=$true)][string]$destination,
[string]$exten=".*",
[int]$olderthandays = 30
)
$lwt = (get-date).AddDays(-$olderthandays)
if(!(Test-Path $source)){
Write-Output "Source directory does not exist."
exit
}
if(!(Test-Path $destination)){
Write-Output "Source directory does not exist."
exit
}
if($olderthandays -lt 0){
Write-Output "You can't provide a negative number of days. If you want everything deleted simply provide 0 for number of days."
exit
}
if(!$exten.StartsWith(".")){
$exten = "."+$exten
$exten
}
try{
Get-ChildItem $source -ErrorAction Stop | ?{$_.LastWriteTime -lt $lwt -AND $_.Extension -eq $exten} | foreach {
Write-Output $_.FullName
# Move-item $_.FullName $destination -ErrorAction Stop
}
}
catch{
Write-Output "Something went wrong while moving items. Aborted operation."
}
Как это можно достичь?
Что означает «соответствие расширению» означает «?»? Итак, вроде бы, имя файла «/Users/foo/Documents/bar.*» будет соответствовать? Или что-то еще, потому что «. *» Очень значимо в регулярном выражении. – RamenChef
Я хочу сказать, что любое расширение вроде так .csv, .pdf или что-то еще. – Junaid