Exclua todos os arquivos do Windows em uma pasta específica anterior ao mês atual

0

Posso ter sua ajuda & experiência na criação de um arquivo de lote para o abaixo, por favor

Eu tenho abaixo os arquivos em uma pasta \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

Gostaria de excluir dinamicamente todos os arquivos, exceto o mês atual. ou seja, se YYYYMM é o mês atual, exclua todos os arquivos (não inclua subpastas) que não sejam iguais a AAAAMM . *

É improvável que os arquivos sejam gerados com datas futuras. Mas, se for uma vitória rápida, pode-se dizer excluir todos os arquivos antes que o mês atual seja ainda melhor.

    
por Learner16 27.02.2017 / 13:20

1 resposta

0

I would like to dynamically delete all files except for the current month. ie., If YYYYMM is the current month, delete all files(do not include sub folders) not equal to YYYYMM.*

Aqui está um script do PowerShell que faz isso:

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

A primeira linha altera a pasta para "\ abcdef123 \ test \ root \ child \ source"

A segunda e a terceira linha (segundo parágrafo) obtêm o ano e mês atuais do calendário gregoriano no formato "aaaaMM", em que "aaaa" tem quatro dígitos e "MM" é um mês com dois dígitos.

A quarta linha (último parágrafo) exclui todos os arquivos da pasta atual, exceto aqueles que correspondem ao padrão " yyyyMM ".

A última linha retorna à pasta onde você começou.

    
por 27.02.2017 / 14:49