我有一个正常运行的 PowerShell 脚本,它注册一个计时器对象并每隔几分钟发送一个密钥。
$wshell = New-Object -ComObject Wscript.Shell
...
function fctName {
param([ScriptBlock] $action)
...
Register-ObjectEvent -InputObject $timer -EventName Elapsed -SourceIdentifier Timer.Elapsed -Action $action
}
fctName {
...
$wshell.sendkeys("{ESC}")
}
在 Windows PowerShell ISE 中,脚本运行良好,没有任何错误。但是,我很想从一个批处理文件中运行它,我在其中只写了这一行:
Powershell.exe -noexit C:\...\ScriptName.ps1
没有抛出错误,但它没有做我想要的,这是为了防止 Windows 空闲。
因为我'-noexit' cmd 窗口,我可以很容易地停止事件
Unregister-Event -SourceIdentifier Timer.Elapsed
它似乎正在工作,因为只输入两次就会引发错误。
- 难道是我的批处理文件需要不同的代码?也许是“回声”等。我不是很熟悉
- 难道是我必须在 Powershell 中导入一个模块?