Вернемся к этому снова, пытаясь удалить файлы с помощью PowerShell.
Сейчас я пытаюсь удалить файлы, которые начинаются с «Export_», а затем двухзначного года, за которым следует юлианская дата. Например, сегодня будет Export_18309. Есть дополнительные цифры после 18309 года, но они не актуальны. В моем текущем коде «Export_» - это строка, а моя дата была преобразована в Int, чтобы я мог делать математические вычисления и увеличивать ее.
Я установил $dval
на 18302 в качестве контрольного примера для файлов, с которыми я работал. Я знаю, что в настоящее время ничего не удаляется, так как я вывожу текстовый файл для ручной проверки, прежде чем продолжить. Однако, если вывод текстового файла неверен, попытка удаления не имеет смысла.
Моя проблема в настоящее время находится в блоке кода function WriteArch
. Я пытаюсь объединить строку и int, чтобы PowerShell отображал результаты, которые начинаются только с «Export_» и $dval
как Export_ $ dval. Я сделал эту конкретную строку кода так, чтобы лучше изобразить то, что я пытаюсь.
Редактировать: цикл for в WriteArch
должен увеличиваться с 18302 до 18303, затем до 18304 и т. Д., Поскольку я удаляю файлы за неделю до запуска сценария.
$path0 = 'U:\PShell\Testing\IBM3 Cleanup\logfiles'
$archLog = 'U:\PShell\Testing\IBM3 Cleanup\LogArchive.txt'
$day = (Get-Date).DayOfWeek
$date = (Get-Date).ToString("yy") + ((Get-
Date).DayOfYear).ToString("D3")
$dval = $date -as [Int]
$dval = Switch ($day) {
"Monday" { ($dval - 7); break }
"Tuesday" { ($dval - 8); break }
"Wednesday" { ($dval - 9); break }
"Thursday" { ($dval - 10); break }
"Friday" { ($dval - 11) }
}
Clear-Content $archLog
$dval = 18302
function WriteArch {
param( $dval, $path0)
for ($i = 0; $i -le 4; $i++) {
Get-ChildItem -Path $path0|
Where { $_.FullName -Match "Export_" + "$dval"}|
Add-Content $archLog
$dval++
}
}
WriteArch $dval $path0
Invoke-Item $archLog