运行 带有批处理文件的快捷方式

Run a shortcut with a batch file

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

这是我的代码

    @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 的帮助包含以下花絮:

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"

因为它不是带有控制台的程序window,所以内容无关紧要,不会被使用。

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

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