PowerShell: Полезные функции
Полезные функции PowerShell, которые я пишу сам или нахожу в интернете. Очень помогает в работе и в скриптах.
Найти файлы старше X дней с момента создания
Функция позволяет найти и вывести элементы старше X дней по свойству CreationTime
.
Параметры
-P
- путь к директории, в которой необходимо найти файлы.-T
- время, прошедшее с момента создания файла (в секундах).
.AddSeconds
можно заменить на .AddDays
, чтобы отсчитывать дату не в секундах, а в днях.
Найти файлы старше X дней с момента изменения
Функция позволяет найти и вывести элементы старше X дней по свойству LastWriteTime
.
Параметры
-P
- путь к директории, в которой необходимо найти файлы.-T
- время, прошедшее с момента изменения файла (в секундах).
.AddSeconds
можно заменить на .AddDays
, чтобы отсчитывать дату не в секундах, а в днях.
Создать новый элемент
Функция позволяет создавать элементы. Ничего экстраординарного здесь нет, просто функция, укорачивающая стандартный cmdlet New-Item
.
Параметры
-T
- тип элемента.'D'
- директория.'F'
- файл.
-P
- путь к директории, в которой необходимо создать элемент.-N
- название элемента.
param (
[Alias('T')][string]$Type,
[Alias('P')][string]$Path,
[Alias('N')][string]$Name,
[Alias('A')][string]$Action = 'SilentlyContinue'
)
function New-Data() {
switch ($Type) {
'D' { $Type = 'Directory' }
'F' { $Type = 'File' }
}
New-Item -Path "${Path}" -Name "${Name}" -ItemType "${Type}" -ErrorAction "${Action}"
}
New-Data
Проверить существование элемента
Функция позволяет “безопасно” проверить существование элемента. Применяется параметр -LiteralPath
, который интерпретирует путь без какой-либо обработки.
Параметры
-T
- тип элемента.-P
- путь к директории, в которой необходимо проверить элемент.
Проверить существование модуля
Функция позволяет проверить существование модуля PowerShell в памяти компьютера.
Параметры
-N
- название модуля.
Param(
[Alias('N')][string[]]$Names,
[Alias('A')][string]$Action = 'Stop'
)
function Test-Module() {
ForEach ($Name in $Names) {
if (-not (Get-Module -ListAvailable -Name "${Name}")) {
Write-Error -Message "Module '${Name}' not installed!" -ErrorAction "${Action}"
}
}
}
Test-Module
Вывести сообщение в терминал
Функция выводит информацию в терминал по типу сообщений.
Параметры
-T
- тип сообщения.'HL'
- заголовок.'I'
- информационное сообщение.'W'
- предупреждение (warning).'E'
- ошибка (error).
-M
- текст сообщения.-A
- действие, которое необходимо выполнить при выводе сообщения в терминал.
param (
[Alias('T')][string]$Type,
[Alias('M')][string]$Message,
[Alias('A')][string]$Action = 'Continue'
)
function Write-Msg() {
switch ($Type) {
'HL' { Write-Host "${NL}--- ${Message}".ToUpper() -ForegroundColor Blue }
'I' { Write-Information -MessageData "${Message}" -InformationAction "${Action}" }
'W' { Write-Warning -Message "${Message}" -WarningAction "${Action}" }
'E' { Write-Error -Message "${Message}" -ErrorAction "${Action}" }
default { Write-Host "${Message}" }
}
}
Write-Msg
Найти свободную букву диска
Небольшая функция, которая возвращает не занятую букву диска. Используется в PowerShell: Стирание диска.
Получить размер файла
Функция позволяет получить размер файла в различных единицах измерения.
Параметры
-F
- название файла.
Param(
[Alias('F')][string]$File
)
function Get-FileSize() {
(Get-Item "${File}").Length # Size in bytes.
(Get-Item "${File}").Length/1KB # Size in KB.
(Get-Item "${File}").Length/1MB # Size in MB.
(Get-Item "${File}").Length/1GB # Size in GB.
(Get-Item "${File}").Length/1TB # Size in TB.
}
Get-FileSize
Работа с архивами 7-Zip
Функции по работе с архивами 7-Zip.
Параметры
-F
- путь к файлу.
Упаковка
Распаковка
Работа с архивами WinRAR
Функции по работе с архивами WinRAR.
Параметры
-F
- путь к файлу.