mirror of
https://github.com/fleschutz/PowerShell.git
synced 2024-11-22 16:03:22 +01:00
68 lines
1.7 KiB
Markdown
68 lines
1.7 KiB
Markdown
|
*watch-file.ps1*
|
||
|
================
|
||
|
|
||
|
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
|
||
|
}
|
||
|
```
|
||
|
|
||
|
*(generated by convert-ps2md.ps1 using the comment-based help of watch-file.ps1 as of 10/19/2023 08:11:43)*
|