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

标签 batch-file shortcut

我有几个应用程序往往需要同时打开,而不是仅依赖于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/

    相关文章:

    windows-10 - 通过浏览器从当前文件夹中以管理员权限打开cmd的快捷键

    python - 如何使用 "subprocess"运行复杂的批处理命令

    Django从批处理文件创建 super 用户

    eclipse - VS Code 有像 eclipse 中的 ctrl+q 这样的快捷键吗?

    android - "Quick shortcut maker"和 "App shortcut maker"是如何工作的?

    android - 如何在 android oreo(8.0) 上将应用程序启动器图标添加到主屏幕?

    shortcut - 如何在 jupyter lab 中设置指向 "Enable scrolling for outputs"的快捷方式?

    Azure 管道 BatchScript 任务未在其部署到的计算机上运行脚本

    php - 从批处理文件创建窗口服务?

    linux - 批量从windows复制文件到linux