我有这个运行powershell脚本的批处理文件。
我想在背景中运行它,但如果我使用" windowstyle隐藏"仍然可见。
powershell -ExecutionPolicy ByPass -windowstyle hidden -File" C:\ script.ps1"
答案 0 :(得分:0)
您可以运行,例如长期运行的脚本,作为工作。
要启动它,请运行
$job = Start-Job -ScriptBlock {Get-Process}
这将在后台启动Get-Process
cmdlet。该脚本也可以是一些自定义脚本或更长的脚本,它不需要是一行代码。
您可以通过运行
来检查其状态$job | Get-Job
并接收您运行的输出
$job | Receive-Job
请注意,一旦收到数据,它就会丢失。您只能接收一次,之后由您将其保存在变量或以后的处理中。
最后从您运行的队列中删除作业
$job | Remove-Job
答案 1 :(得分:0)
我使用以下功能:
function bg() {
Start-Process `
-WorkingDirectory (Get-Location) `
-NoNewWindow `
-FilePath "powershell" `
-ArgumentList "-NoProfile -command `"$args`" "
}
它将启动一个新的Powershell实例,该实例在后台执行并允许使用cmdlet。 您这样称呼:
bg "Start-Sleep 2; get-location; write 'done' "