【问题标题】:Run a shortcut with a batch file使用批处理文件运行快捷方式
【发布时间】:2016-11-14 02:17:55
【问题描述】:

我正在尝试设置多个 Steam 帐户,您可以通过为其创建快捷方式立即启动帐户,等等等等。快捷方式工作正常,但我想制作一个批处理文件来选择要使用的帐户,然后启动该帐户的快捷方式。出于某种原因,我不知道如何从批处理文件中启动快捷方式。我已经搜索和搜索,但我找不到如何。 一切似乎都正常,直到启动什么也不做的快捷方式。

这是我的代码

    @echo off
    echo Which steam account to use?
    echo ---------------------------
    cd "C:\Program Files (x86)\Steam"
    TIMEOUT 2 >null
    echo 1. user1
    TIMEOUT 2 >null
    echo 2. user2
    set /p account="Select a number. "
    echo %account%
    TIMEOUT 2 >null
    if %account%==1 (
        echo Account "user1" selected.
        TIMEOUT 3 >null
        start "C:\Program Files (x86)\Steam\user1.lnk"
        )
    IF %account%==2 (
        echo Account "user2" selected.
        TIMEOUT 3 >null
        start "C:\Program Files (x86)\Steam\user2.lnk"
        )

运行 Windows 8。

【问题讨论】:

  • start 命令行中的第一组引号是 WINDOWS 标题。所以start "" "c:\etc\etc.lnk" 是一个空白窗口标题,或者在第一组引号之间粘贴一些东西。这是一个很常见的问题。

标签: windows batch-file cmd shortcut


【解决方案1】:

start 的帮助包含这个花絮:

START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
      [/NODE <NUMA node>] [/AFFINITY <hex affinity mask>] [/WAIT] [/B]
      [command/program] [parameters]

    "title"     Title to display in window title bar.

换句话说,第一个引用的字符串将用于标题。要使用引号启动某些内容,您需要在它之前提供一个带引号的字符串,如下所示:

start "" "C:\Program Files (x86)\Steam\user1.lnk"

由于不是带有控制台窗口的程序,内容无所谓,不会被使用。

【讨论】:

    【解决方案2】:

    另一种可能的方法是获取快捷方式的target 属性并运行它。 这是使用shortcutjs.bat的方法

    setlocal
    for /f "tokens=1,* delims=:" %%a in (
      'shortcutjs.bat'
    ) do (
      set "%%~a=%%~b"
    )
    echo target is %target%
    call %target%
    endlocal
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-14
      • 2020-10-04
      • 1970-01-01
      • 2018-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多