我有一个批处理文件,可以按需打开(不启动)一堆程序
例如
cd "C:\Program Files (x86)\Microsoft Office\root\Office16"
start lync.exe
我想自动在另一个程序(特别是AutoHotKey脚本)中打开文件,但可以选择打开常规文件,例如像
d:
cd "D:\.PortableApps\AutoHotkey_1.1.28.02\"
start notifier.ahk AutoHotkeyU64.exe
我尝试过
START "" /D "D:\.PortableApps\AutoHotkey_1.1.28.02\notifier.ahk" "D:\.PortableApps\AutoHotkey_1.1.28.02\AutoHotkeyU64.exe"
答案 0 :(得分:1)
从cd /?
运行cmd
时,会在帮助主题中找到此部分:
除了更改电流外,还使用/ D开关更改电流驱动器 驱动器的目录。
因此,当/d
挂起c
分别位于不同驱动器盘符上的遗物时,需要使用d
开关。
@echo off
cd /d "D:\.PortableApps\AutoHotkey_1.1.28.02\"
start notifier.ahk AutoHotkeyU64.exe
或者使用pushd
@echo off
pushd "D:\.PortableApps\AutoHotkey_1.1.28.02\"
start notifier.ahk AutoHotkeyU64.exe
popd
或者只是start
(没有像您的示例那样错误实现的/D
)。
start "" "D:\.PortableApps\AutoHotkey_1.1.28.02\notifier.ahk" "D:\.PortableApps\AutoHotkey_1.1.28.02\AutoHotkeyU64.exe"
或者您可以使用pushd
或start /b
而不创建新窗口:
start /b "" "D:\.PortableApps\AutoHotkey_1.1.28.02\notifier.ahk" "D:\.PortableApps\AutoHotkey_1.1.28.02\AutoHotkeyU64.exe"
提醒一下,上述命令的所有相关帮助都可以通过在cmd.exe
中运行以下命令来找到
cd /?
pushd /?
popd /?
start /?
答案 1 :(得分:1)
我首先建议您打开“命令提示符”窗口,然后输入start /?
以阅读其用法信息。
Start
您的可执行文件linc.exe
,而无需更改工作目录:
@Start "" "C:\Program Files (x86)\Microsoft Office\root\Office16\lync"
在上面的示例中,您将注意到,由于第一个双引号字符串应为标题,因此我使用了一个空字符串,以防止您的命令被读为一个。另外,如果您不确定.EXE
是%PATHEXT%
下的值条目,则可以添加.exe
扩展名,即@Start "" "C:\Program Files (x86)\Microsoft Office\root\Office16\lync.exe"
。
最后一点,由于lync.exe
是Microsoft Office产品,我完全希望它的路径在注册表中HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\lync.exe
下输入。在这种情况下,您完全不需要输入其路径,并且只需输入以下内容即可:
@lync
start /?
的输出中注意到的第一件事是,应该以脚本的脚本作为参数来启动可执行文件,而不是以脚本的执行文件作为参数来启动脚本。
如果您的AHk命令不需要您当前的目录是自己的目录,那么以下内容就足够了:
@Start D:\.PortableApps\AutoHotkey_1.1.28.02\AutoHotkeyU64 D:\.PortableApps\AutoHotkey_1.1.28.02\notifier.ahk
如果在这些名称或路径中有空格或其他有害字符,则使用可执行扩展名的更安全的双引号选项会更好:
@Start "" "D:\.PortableApps\AutoHotkey_1.1.28.02\AutoHotkeyU64.exe" "D:\.PortableApps\AutoHotkey_1.1.28.02\notifier.ahk"
如果您需要更改目录,以使AHk命令正常运行,则可以在提供的测试中选择两个选项:
@PushD D:\.PortableApps\AutoHotkey_1.1.28.02
@Start AutoHotkeyU64 notifier.ahk
@PopD
如果不能确定.EXE
是%PATHEXT%
下的值条目,则应包括该.exe
扩展名,即@Start AutoHotkeyU64.exe notifier.ahk
。另外,如果第一行目录路径中有空格,那么如果该路径不在NTFS文件系统上,则您将其双引号。
要直接使用Start
选项,类似于第一个示例:
@Start /D D:\.PortableApps\AutoHotkey_1.1.28.02 D:\.PortableApps\AutoHotkey_1.1.28.02\AutoHotkeyU64 notifier.ahk
如果在这些名称或路径中有空格或其他有害字符,则使用可执行扩展名的更安全的双引号选项会更好:
@Start "" /D "D:\.PortableApps\AutoHotkey_1.1.28.02" "D:\.PortableApps\AutoHotkey_1.1.28.02\AutoHotkeyU64.exe" "notifier.ahk"
@
。如果您的脚本已关闭echo
,则可以省略所有这些前置字符。