Могу ли я получить вашу помощь и опыт в создании командного файла для нижеуказанного, пожалуйста

У меня есть файлы ниже в папке \\abcdef123\test\root\child\source

AC_FDM_TREE_EXTRACT_20161216203034.touch
AC_FDM_TREE_EXTRACT_20170118204420.touch
AC_FDM_TREE_EXTRACT_20170214204730.touch
PS_Z_VT_SUPER_TREE_20161216203034.txt
PS_Z_VT_SUPER_TREE_20170118204420.txt
PS_Z_VT_SUPER_TREE_20170214204730.txt

Я хотел бы динамически удалить все файлы, кроме текущего месяца. т.е., если YYYYMM - текущий месяц, удалите все файлы (не включая подпапки), не равные YYYYMM. *

Маловероятно, что файлы будут созданы с будущими датами. Но, если это быстрый выигрыш, можно сказать, удалить все файлы до текущего месяца еще лучше.

1 ответ1

0

Я хотел бы динамически удалить все файлы, кроме текущего месяца. т.е., если YYYYMM - текущий месяц, удалите все файлы (не включая подпапки), не равные YYYYMM. *

Вот скрипт PowerShell, который делает это:

Push-Location "\\abcdef123\test\root\child\source"

$USculture=New-Object -TypeName CultureInfo -ArgumentList "en-US"
$targetDateString=(Get-Date).ToString("yyyyMM", $USculture)

Remove-Item * -Exclude ("*"+$targetDateString+"*")
Pop-Location

Первая строка меняет папку на «\abcdef123\test\root\child\source»

Во второй и третьей строке (второй абзац) указывается текущий год и месяц григорианского календаря в формате "yyyyMM", где "yyyy" - это четырехзначный год, а "MM" - двухзначный месяц.

Четвертая строка (последний абзац) удаляет все файлы в текущей папке, кроме тех, которые соответствуют шаблону " yyyyMM ".

Последняя строка возвращает вас в папку, где вы начали.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .