gpt4 book ai didi

batch-file - 执行批处理文件中的快捷链接,而不必等待应用程序退出

转载 作者:行者123 更新时间:2023-12-03 16:43:14 24 4
gpt4 key购买 nike

我有几个应用程序往往需要同时打开,而不是仅依赖于Startup文件夹来同时启动它们(因此,如果一天中的某些时间关闭某些应用程序,我可以重新打开所有应用程序) )我创建了一个充满快捷方式的文件夹,其方式类似于Linux的运行级别启动链接。因此,在该文件夹中,我具有类似于以下内容的快捷链接:

  • S00-Outlook.lnk
  • S01- Notepad++ 。lnk
  • S02-Chrome.lnk
  • S03-Skype.lnk

  • 我创建了一个批处理文件,该文件将遍历所有与命名格式匹配的链接并启动它们。该批处理文件的内容当前为:
    @FOR /F "usebackq delims==" %%f IN (`dir /b "S* - *.lnk"`) DO "%%f"

    它会启动我尝试的大多数链接,但是有些链接会启动并等待进程退出,从而阻止进一步的脚本打开。 是否可以执行快捷方式而无需等待批处理文件中的进程退出? 还是这是一个失败的原因,我应该寻找一个Powershell解决方案?

    到目前为止我尝试过的事情:
  • 将内容更改为
    @FOR /F "usebackq delims==" %%f IN (`dir /b "S* - *.lnk"`) DO START /B /I "%%f"

    它在后台进程中启动命令提示符,但从不实际启动链接的目标。
  • 将内容更改为
    @FOR /F "usebackq delims==" %%f IN (`dir /b "S* - *.lnk"`) DO %comspec% /k "%%f"

    它启动第一个链接,但是等待。
  • 最佳答案

    尝试第一种方法,但是将/BSTART命令中删除。这样,该过程将在新窗口中启动,因此不应使其等待。

    使用/B,它将在同一窗口中启动该过程。因此,如果该过程由于某种原因而阻塞,那么您将无法获得控制权,直到它完成为止。例如,考虑以下批处理文件foo.bat(为此您需要 sleep 命令,因为我有cygwin,所以它附带了):

    echo hi
    sleep 5

    在命令提示符下,如果您键入
    START /B foo.bat

    您会注意到,在 sleep 完成之前,控件不会返回到命令提示符。但是,如果执行此操作:
    START foo.bat

    然后控件立即返回(因为foo.bat在新窗口中启动),这就是您想要的。

    关于batch-file - 执行批处理文件中的快捷链接,而不必等待应用程序退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6139365/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com