Powershell——如何在循环中最小化脚本运行的控制台?

问题描述 投票:0回答:2

我的启动中有一个 powershell 脚本:

%appdata%\Microsoft\Windows\Start Menu\Programs\Startup\

注意,脚本本身不在启动中。相反,在 \Startup\ 中是脚本的快捷方式。捷径是:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -NoProfile -File C:\develop\utils\powershell\converter.ps1

它整天循环等待事件。这是循环:

try {
    # At the end of the script... 
    while ($true) {
        Start-Sleep -Seconds .2
    }    
}
catch {}
Finally {
    # Work with CTRL + C exit too !
    Unregister-Event -SourceIdentifier $eventname 
}

效果很好。

但是当我登录时,有那个命令框....

如何使脚本保持原样,但最小化? (或者更好,,,坐在托盘中......但前提是这很容易!我的意思是:理想情况下它甚至不会出现在我的 alt-tab 窗口序列中......但我可以终止它,如果我需要....)

我应该进一步注意,该脚本必须位于我的用户会话中,因为它提供的事件是在我使用其他应用程序时由我触发的。 (IOW:将其放入任务调度程序中不是一个选项。)

powershell
2个回答
3
投票

更新:以下说明按照广告的方式工作,但您声明您知道这种方法,并且您唯一的问题是 Windows 11 中文件资源管理器 GUI 的样式可能会错误地表明窗口-样式下拉列表(快捷方式文件的“属性”对话框中的字段

Run
)已禁用


以下是如何在启动时通过用户特定的"$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup"文件夹运行脚本

最小化

  • 移动您的脚本文件,例如

    foo.ps1
    启动文件夹,[1]对您的桌面

  • 在其位置上,创建一个快捷方式文件 (

    .lnk
    ),该文件在最小化窗口的情况下调用脚本文件:

    • 要以交互方式执行此操作,请通过文件资源管理器的
      New > Shortcut
      快捷菜单命令:
      • 粘贴以下目标命令并提交:

        powershell.exe -ExecutionPolicy Bypass -File "%USERPROFILE%\Desktop\foo.ps1"  
        
      • 键入文件名(

        .lnk
        将被附加,尽管该扩展名默认隐藏在文件资源管理器中)并提交。

      • 打开新创建的文件的“属性”对话框,然后在字段

        Run
        中选择
        Minimized
        ,然后提交。


[1] 正如 Abraham Zinala 指出的那样,当放置在启动文件夹中或在文件资源管理器中双击时,

.ps1
文件默认不会被执行(相反,它们会被打开进行编辑)。但是,可以重新配置系统来执行此操作 - 请参阅此答案。尽管如此,当直接放置在启动文件夹中时,这并不能让您控制脚本的窗口状态。


0
投票
为我解决了问题。这并不特别适用于任何 shell,但总的来说,我的 PowerShell 窗口没有被最小化或恢复正常。我做了一些挖掘,上面的命令对我来说效果很好。

© www.soinside.com 2019 - 2024. All rights reserved.