@izuru_hitachi

Как в PowerShell найти файл и проверить на совпадение по дате в его имени?

Доброго времени суток всем!
Прошу помощи:
У меня есть задача - найти через PowerShell файл в определённой папке и проверить, совпадает ли дата в названии файла с сегодняшней.
Допустим, название файла "File_2022-04-23_23-22.bak", то есть формат File_$Date_$Time.bak
Нужно, чтобы дата в названии файла совпадала с сегодняшней, а в идеале ещё и время с 00.00 до 02.59.

Полдня на это убил, но к сожалению, в программировании я полный ноль.

Вот всё, до чего я смог додуматься при помощи гугла:
$Date = get-date -Format "yyyy-MM-dd"
Get-ChildItem -Path 'C:\Files\File_$Date_*.bak' | Where-Object {$PSItem.Name -match '0[0-2]-[0-5][0-9]-[0-5][0-9]'} | ForEach-Object {Test-Path $_}
  • Вопрос задан
  • 299 просмотров
Решения вопроса 2
@MaxKozlov Куратор тега PowerShell
Всё что вам было нужно - взять в двойные кавычки - именно в них происходит интерполяция переменных

$Date = get-date -Format "yyyy-MM-dd"
Get-ChildItem -Path "I:\BACKUP\File_$Date*.bak"
# Если непременно надо подчёркивание, то переменную придётся выделить
# Get-ChildItem -Path "I:\BACKUP\File_$($Date)_*.bak"
Ответ написан
Комментировать
@izuru_hitachi Автор вопроса
В общем, таки сам нашёл. Вдруг кому пригодится моё художество:
$Date = get-date -Format "yyyy-MM-dd"

$item = Get-ChildItem -Path 'C:\Files\File_*.bak' | Where-Object {$PSItem.Name -match '0[0-2]-[0-5][0-9]-[0-5][0-9]'} | Select-Object 'Name'
"$item".contains($Date)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы