eu uso $ Env: em {} é trabalho! Obrigado a todos, pelas sugestões.
(minha conquista é executar script
\ StartMonitoring.ps1 -filePath C: \ scripts \ test01 -logPath C: \ scripts \ log
e use o parâmetro $ logPath em {}.
Param
(
[string]$filePath,
[string]$logPath
)
$Env:EnvlogPath = "$logPath"
### SET FOLDER TO WATCH + FILES TO WATCH + SUBFOLDERS YES/NO
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = "$filePath"
$watcher.Filter = "*.*"
$watcher.IncludeSubdirectories = $true
$watcher.EnableRaisingEvents = $true
### DEFINE ACTIONS AFTER AN EVENT IS DETECTED
$action = { $path = $Event.SourceEventArgs.FullPath
$changeType = $Event.SourceEventArgs.ChangeType
$logline = "$(Get-Date), $changeType, $path"
Add-content "$Env:EnvlogPath\log.txt" -value $logline
}
### DECIDE WHICH EVENTS SHOULD BE WATCHED
Register-ObjectEvent $watcher "Created" -Action $action
Register-ObjectEvent $watcher "Changed" -Action $action
Register-ObjectEvent $watcher "Deleted" -Action $action
Register-ObjectEvent $watcher "Renamed" -Action $action
while ($true) {sleep 1}
ref: Como monitorar uma pasta e disparar uma ação de linha de comando quando um arquivo é criado ou editado?