【问题标题】:Direct the command to a newly opened separate command prompt using bat file使用 bat 文件将命令定向到新打开的单独命令提示符
【发布时间】:2014-03-16 06:44:18
【问题描述】:

我有一个命令提示符快捷方式,可以在启动 bat 文件时运行它。一旦启动,我将发出另一个命令,比如 my_command,它作为 doskey 宏添加到 login.bat

流程有点像这样。

我有一个 cmd 快捷方式,目标设置为:

C:\Windows\System32\cmd.exe /k "D:\\login.bat"

login.bat 设置环境的位置。

一旦 cmd 提示符处于活动状态,我应该发出另一个命令,例如 my_command(应该在当前打开的 cmd 提示符下运行)

login.bat里面我有以下几行

...
doskey my_command=another_login.bat DEBUG 32

我正在尝试编写一个 bat 文件来完成整个工作。

我不应该改变login.bat

我尝试的是:

start C:\Windows\System32\cmd.exe /k "D:\\login.bat"
my_command

命令 my_command 在 bat 文件的命令提示符下运行。

如何使命令my_commnad 在新打开的命令提示符下运行,而不是在 bat 文件的 cmd 提示符下运行?

【问题讨论】:

    标签: batch-file cmd environment-variables


    【解决方案1】:

    试试这个:

    start C:\Windows\System32\cmd.exe /k "D:\\login.bat & devenv"
    

    回答您的编辑:坏消息。

    您不能从批处理文件运行 Doskey 宏。

    参考:http://ss64.com/nt/doskey.html

    你可以直接运行你用doskey设置的命令吗?

    start C:\Windows\System32\cmd.exe /k "D:\\login.bat & another_login.bat DEBUG 32"
    

    【讨论】:

    • 它说 devenv 未被识别为命令。但是当我尝试直到 login.bat 并在提示符下输入命令 devenv 时它可以工作
    • 好的。我假设 login.bat 设置您的 PATH 变量。也许 cmd.exe 在 login.bat 执行之前寻找 devenv。您可以尝试指定 devenv 的整个路径 - 我认为 login.bat 所做的所有其他事情仍然会被应用。
    • 我稍微编辑了我的问题。我应该运行一个在 login.bat 中输入的 doskey。我是编写 bat 文件的新手。很抱歉造成混乱。
    【解决方案2】:

    您需要在批处理文件中指定 devenv 的完整路径,该路径将取决于您的 Visual Studio 版本。

    尝试将devenv 替换为以下之一:

    对比 2013:

    C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe
    

    VS 2012:

    C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe
    

    VS 2010:

    C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe
    

    根据您的评论进行编辑

    doskey.exe 可执行文件位于C:\Windows\System32\doskey.exe。通过完整路径引用它应该可以工作。

    【讨论】:

    • 抱歉,我的问题并不完全诚实。其实我不想说输入的实际命令。它不是开发环境。它是在 login.bat 中添加的 doskey。运行 login.bat 后。我正在调用 doskey 宏。我会改写我的问题
    • 查看我的编辑... Doskey.exe 也是一个可执行文件,您也可以通过完整路径引用它。
    • 我想@sajas 想说的是他在 login.bat 文件中定义了一个 DOSKEY 宏,并试图从调用 bat 文件的快捷方式访问它。
    • 我的主要问题是如何在新打开的 cmd 提示符下运行后面的任何命令(她是 my_command),而不是 bat 文件打开的默认 cmd 提示符。
    • 谢谢大家,Blorgbeards 的回答对我有用。感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 2016-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    • 1970-01-01
    • 2017-07-06
    相关资源
    最近更新 更多