【发布时间】:2017-04-11 15:26:09
【问题描述】:
我有这个 powershell 脚本,当在某个目录中创建文件时会触发一些指令。 一切正常,但在操作完成后我无法关闭 powershell。 我该怎么做?
### SET FOLDER TO WATCH + FILES TO WATCH + SUBFOLDERS YES/NO
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = "C:\Users\Autostrade\CartellaSFTP"
$watcher.Filter = "*.*"
$watcher.IncludeSubdirectories = $false
$watcher.EnableRaisingEvents = $true
$uscita = 0
### DEFINE ACTIONS AFTER AN EVENT IS DETECTED
$action = { $path = $Event.SourceEventArgs.FullPath
$changeType = $Event.SourceEventArgs.ChangeType
$logline = "$(Get-Date), $changeType, $path"
Add-content "C:\Users\Autostrade\PHP Script Dati Telepass\log.txt" -value $logline
# Set up references to executable and script
$PhpExe = "C:\PHP\php.exe"
$PhpFile = "C:\Users\Autostrade\PHP Script Dati Telepass\script.php"
# Create arguments from Script location
# usually php.exe is invoked from console like:
# php.exe -f "C:\path\myscript.php"
#$PhpArgs = '-f "{0}"' -f $PhpFile
# Invoke, using the call operator
$PhpOutput = & $PhpExe $PhpFile
PhpOutput
$uscita = 1
}
### 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 (!$uscita) {sleep 5}
exit
我尝试使用“$uscita”变量来停止 while 并退出,但它不起作用。我还尝试将退出命令放在操作的末尾,但这也不起作用
【问题讨论】:
-
$uscita = 1->$using:uscita = 1 -
我试过了.. powershell 给出了一些错误并立即关闭.. 我无法读取错误是什么
-
删除
exit并从 PowerShell 提示符运行脚本。 -
它给了我这个异常:CategoryInfo: ParseError (:) [], ParseExceptionfullyQualifiedErrorId: InvalidLeftHandSide
-
请edit您的问题并显示完整的错误。不要发布屏幕截图;将其复制/粘贴为文本。
标签: powershell