PowerShell/docs/watch-file.md

68 lines
1.7 KiB
Markdown
Raw Normal View History

2024-11-08 12:38:20 +01:00
The *watch-file.ps1* Script
===========================
2023-10-19 08:12:00 +02:00
watch-file.ps1
Parameters
----------
```powershell
[<CommonParameters>]
This script supports the common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction,
WarningVariable, OutBuffer, PipelineVariable, and OutVariable.
```
Script Content
--------------
```powershell
function Watch-File {
Param(
[Parameter(Mandatory=$false)]
[ValidateSet('Created', 'Changed', 'Deleted', 'Renamed', 'Error')]
[string]$event
)
# Define the path to the file you want to monitor
$file = "C:\temp\file.txt"
# Define the action that should be taken when the file changes
$action = {
switch ($event) {
"Created" { Write-Host "File created" }
"Changed" { Write-Host "File changed" }
"Deleted" { Write-Host "File deleted" }
"Renamed" { Write-Host "File renamed" }
"Error" { Write-Host "Error" }
default { Write-Host "Sorry" }
}
}
# Create a new FileSystemWatcher object
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = Split-Path -Path $file -Parent
$watcher.Filter = Split-Path -Path $file -Leaf
$watcher.IncludeSubdirectories = $false
$watcher.NotifyFilter = [System.IO.NotifyFilters]::LastWrite -bor [System.IO.NotifyFilters]::FileName
# Register the event watcher
$watcher.EnableRaisingEvents = $true
Register-ObjectEvent -InputObject $watcher -EventName $event -Action $action -SourceIdentifier FileChangedEvent
# Keep the script running until the user stops it manually
while ($true) {
Start-Sleep -Seconds 1
}
# Unregister the event watcher
Unregister-Event -SourceIdentifier FileChangedEvent
}
```
2024-11-20 11:52:20 +01:00
*(generated by convert-ps2md.ps1 as of 11/20/2024 11:52:01)*