PowerShell: Difference between revisions
Appearance
mNo edit summary |
(No difference)
|
Latest revision as of 22:57, 30 October 2024
run
single command
powershell -c "$lastmonth = (Get-Date).addMonths(-3); $lastmonth.tostring(\"yyyy-MM\")"
script file
powershell -executionpolicy bypass -File ./del-old-dirs.ps1
echo/print
Write-Host "Hello World" pause
date
get current date e.g. YYYY-MM
powershell -c "$lastmonth = (Get-Date).addMonths(-3); $lastmonth.tostring(\"yyyy-MM\")"
strings
get substring of string
$var = 'Hello World' $result = $var.substring(0, 5) $result-> Hello
merge stings
$dest = $rootPath + "\" +$subFolder
filesystem access
check a dir exists
if (Test-Path $dest) { ... }
del / delete file
Remove-Item -Path "C:\dir\file.txt"
mkdir / create dirctory
New-Item -ItemType directory -Path C:\newDir
select old files from directory
$limit = (Get-Date).AddDays(-90)
$scope = Get-ChildItem -Path $dir -Force | Where-Object { $_.PSIsContainer -and $_.CreationTime -lt $limit }
#
# Filters:
# -Filter "*.dfq"
# Where
# $_.PSIsContainer => dirs
# !$_.PSIsContainer => files
#
# write scope to CSV file
$scope | Select-Object FullName, CreationTime | Export-Csv -Path .\$logfile -NoTypeInformation
# -Append
# delete files in scope
$scope | Remove-Item -Force
delete old files
delete old files (from [1])
$limit = (Get-Date).AddDays(-15)
$path = "C:\Some\Path"
# delete files older than the $limit.
Get-ChildItem -Path $path -Recurse -Force | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $limit } | Remove-Item -Force
# delete any empty directories left behind after deleting the old files.
Get-ChildItem -Path $path -Recurse -Force | Where-Object { $_.PSIsContainer -and (Get-ChildItem -Path $_.FullName -Recurse -Force | Where-Object { !$_.PSIsContainer }) -eq $null } | Remove-Item -Force -Recurse
if / else
if folder exists
if (Test-Path $dirDone) { ... }
exit with error code
exit (1)
loops
$dirs = Get-ChildItem -Path .\ -Directory
foreach ($d in $dirs) { ... }
net use q: \\server\dir1\dir2 net use q: /delete