Я действительно надеюсь, что это имеет смысл. Сценарий будет более подробным, но из-за предоставленного фрагмента у меня возникла проблема.
Я ежедневно запускаю скрипт для поиска файлов предыдущего дня в определенной папке. Иногда папки есть и они пусты, и в этом случае они удаляются. Если папки существуют, проверьте их на наличие дополнительных файлов. Если файлы существуют, верните имя родительского каталога.
Папка 11 является постоянной и никогда не изменяется. Папки в пределах 11 создаются ежедневно с именами в формате ГГГГДДД (ДДД = юлианский день). Если папка YYYYDDD существует, проверьте ее на наличие папки, начинающейся с YYDDD. Если папка, начинающаяся с YYDDD, существует, проверьте ее на наличие файлов. Если какие-либо файлы существуют, верните имя родительского каталога, которое будет YYDDD.
Я знаю, что мой код в настоящее время возвращает полный путь, включая имя файла. Я хочу, чтобы он возвращал BaseName
родительского каталога, в котором находятся файлы.
Существует дополнительный код, который можно игнорировать. Он предназначен для расширения, проверяя другие папки на наличие похожих файлов.
$date0 = (Get-Date).ToString("yy") + ((Get-Date).AddDays(-1).DayOfYear).ToString("D3")
$date1 = (Get-Date).ToString("yyyy") + ((Get-Date).AddDays(-1).DayOfYear).ToString("D3")
$path0 = "U:\PShell\Testing\Delete Julian Dates\Test\11\$date1"
$path1 = "U:\PShell\Testing\Delete Julian Dates\Test\12\$date1"
$path2 = "U:\PShell\Testing\Delete Julian Dates\Test\13\$date1"
$checkfiles = Get-ChildItem $path0\"$date0*"\*
if (Test-Path $path0\"$date0*"\*) {
$checkfiles|
% { Write-Host $_.FullName }
} else {
Write-Host "Folder does not exist or is empty." }
Pause