April 8, 2014 at 11:49 am
i cannot for the life of me pinpoint my error here.
this should be fairly simple: find matching files, and print em out before i explicitly delete them.
i'm trying to test each file in a folder to match certain criteria to determine whether i want to delete it or not.
eventually it will be four items total,including "older than x days, but i cannot even get the first item to filter and prove it was found.
i'm trying to find something that matches a database name between underscores, and starts with "FULL_" and also the "right" extension.
As far as i know, it's never even entering /testing my if statement.
i thought maybe the underscores were part of the problem with a -LIKE statement, but even removing them doesn't get me to return anything inside the write-host commands.
I've tried -like, startswith, and lots of other variations, but i'm obviously stuck on something super basic that my programming skillset assumes or takes for granted.
can anyone see an obvious mistake here?
#folder contains the following files for example:
#FULL_(local)_CommonSecurity_20140407_141304.sqb
#FULL_(local)_dbWarden_20140407_141304.sqb
#FULL_(local)_master_20140407_122503.sqb
#FULL_(local)_model_20140407_122505.sqb
#FULL_(local)_msdb_20140407_122505.sqb
#FULL_(local)_ReportServerTempDB_20140407_141305.sqb
#variable definitions
$dbname="CommonSecurity";
$Full_LOG_or_DIFF = "FULL";
$extension = ".sqb";
$limit = (Get-Date).AddDays(-7)
$fl = Get-ChildItem -path "C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup" ;
foreach($item in $fl)
{
Write-Host $item.Name;
if ( $item.Name -like ".sqb")
{
Write-Host $item.Name;
Write-Host $item.FullName;
}
#if ( $item.Name -like "_${dbName}_" -and $item.Name.StartsWith("${Full_LOG_or_DIFF}_") -and $item.Name -like $extension -and $_.CreationTime -lt $limit)
if ( $item.Name -like $extension )
{
Remove-Item $item.FullName -WhatIf;
}
}
Lowell
April 8, 2014 at 12:52 pm
Just a small change.
from if ( $item.Name -like ".sqb")
to if ( $item.Name -like "*.sqb")
and if ( $item.Name -like "*.$extension")
Also, if you want to cut down the files returned to $fl from Get-ChildItem add the -Filter option.
$fl = Get-ChildItem -path "C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup" -Filter "$Full_LOG_or_DIFF*$extension"
Viewing 2 posts - 1 through 2 (of 2 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy