调用表达式以启动.ps1脚本

时间:2019-03-15 18:29:19

标签: powershell

我正在尝试提供一种扫描文件夹的服务。当它检测到某些文件时,会重命名它们,然后为脚本的其余部分创建变量。一切正常,但是我试图找到一种运行此脚本的方法,以便将其启动的后续窗口最小化。我已经尝试过以下方法,但是2个脚本仍然会启动一个窗口,每个窗口都会在屏幕上闪烁。

我尝试将文件转换为EXE和服务,但随后它拒绝工作。希望有谁能提供快速的一线服务?

Set-Location -Path C:\scripts\ICVT

while ($true) {
invoke-expression 'cmd /c start powershell -WindowStyle Minimized -Command {.\file_checker.ps1}';
Start-Sleep 5
invoke-expression 'cmd /c start powershell -WindowStyle Minimized -Command {.\kill_checker.ps1}';
Start-Sleep 5
}

1 个答案:

答案 0 :(得分:0)

听起来像您需要使用Start-Job在后台运行脚本。只需将Invoke-Expression替换为Start-Job

Set-Location -Path C:\scripts\ICVT

while ($true) {
Start-Job -FilePath '.\file_checker.ps1}';
Start-Sleep 5
Start-Job -FilePath '.\kill_checker.ps1}';
Start-Sleep 5
}

它也将接受脚本块。有关运行和管理后台作业的更多信息,请参见about_jobs