【问题标题】:Execute batch file. How to call .bat file, visual studio command prompt and change directory in opened command prompt window执行批处理文件。如何在打开的命令提示符窗口中调用 .bat 文件、Visual Studio 命令提示符和更改目录
【发布时间】:2013-08-15 22:08:18
【问题描述】:
@echo off
echo copy masterDB file from one directory to another one
copy "C:\dir\dbfile"  "C:\dir1\dbfile" 
cd c:\lvsdir
call lvsrun.bat
timeout /t 180
start %comspec% /k ""C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86 
cd C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE
MSTest /testcontainer: C:\testdir\test.dll

我想通过一个批处理文件将一个 db 文件从一个目录复制到另一个目录(执行正确),然后应该启动 lvsrun.bat 文件,该文件应该启动 lvs 服务器, 然后在新窗口中打开 Visual Studio 命令提示符,将打开的命令提示符中的目录更改为测试目录并运行测试文件。当我调用 lvsrun.bat 时出现问题,它卡在那里。新的 vs 命令提示符打不开。在打开的 vs 命令提示符下更改目录并运行测试文件时遇到问题。上面的代码实际上不起作用

【问题讨论】:

    标签: visual-studio-2010 batch-file


    【解决方案1】:

    您在这里问了两个问题。您应该将它们分开并作为两个单独的 SO 问题提出。

    第一季度。为什么我的批处理文件始终无法通过call lvsrun.bat

    A1。因为call 在它调用的批处理文件退出之前不会返回。如果要立即启动 lvsrun.bat 并继续执行,请使用start

    copy "C:\dir\dbfile" "C:\dir1\dbfile"
    cd c:\lvsdir
    start "" "%comspec%" /k lvsrun.bat
    

    第二季度。为什么我启动的新命令窗口不运行我的测试文件?

    A2。您的批处理文件将仅控制 命令窗口。如果您启动另一个命令窗口,该窗口是独立的,您不能向它“发送”命令。但您可以改为在 current 窗口中运行测试,而不是启动另一个:

    :: Use "call" here to run vcvarsall.bat to set up the environment in this process
    call "C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
    cd C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE
    MSTest /testcontainer: C:\testdir\test.dll
    

    或者您可以制作第二个批处理文件来运行测试。例如,我们称它为runtest.bat,并给出完全相同的行:

    call "C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
    cd C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE
    MSTest /testcontainer: C:\testdir\test.dll
    

    然后会从您的原始批处理文件中同步调用:

    call runtest.bat
    

    或异步:

    start "" "%comspec%" /c runtest.bat
    

    【讨论】:

    • 感谢您的回答。我已经检查了第一个问题的答案。当您更改目录然后使用 start 时,它会更改复制 db 文件的目录。并尝试在新窗口中从主目录启动批处理文件。尝试了不同的方法,但仍然没有结果
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-18
    • 1970-01-01
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多