这是我的批处理文件
start /wait "C:\mcg_ia_tools-iqtool2\mydevenv.cmd"
start "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe"
我希望创建一个运行第一个文件的简单批处理文件,等待它完成执行并启动Visual Studio。
我也尝试过使用延迟命令,无法让它正常工作。
更新: 我试过了
call "C:\mcg_ia_tools-iqtool2\mydevenv.cmd"
"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe"
这是我的outpu,Visual studio没有加载
C:\Users\gdarmon\Desktop>call "C:\mcg_ia_tools-iqtool2\mydevenv.cmd"
Setting up the development environment...
C:\Users\gdarmon\Desktop>C:\WINDOWS\system32\cmd.exe /k ""C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\VsDevCmd.bat""
C:\Users\gdarmon\Desktop>
答案 0 :(得分:2)
在批处理文件中添加延迟的最简单方法是使用ping命令。
Ping -l 1 -n 1 -w 5000 1.1.1.1 -4 1>nul 2>&1
您使用的参数定义如下:
-l = number of bytes in ping packet
-n = number of ping requests to send
-4 = for use of IPv4 (in case both are available)
-w = timeout in milliseconds
您可以调整-w值1000 = 1秒和-n参数来创建几乎任何安装的延迟。
命令末尾的重定向会隐藏输出,从而污染批量输出。
答案 1 :(得分:1)
您不会显示您使用的delay
命令,并且它无论如何都不是标准命令。
您可以使用timeout
类型
timeout /?
从提示中了解详情。
你不能说为什么你想要隐形延迟。
也许
call "C:\mcg_ia_tools-iqtool2\mydevenv.cmd"
"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe"
更适合您的目的。
答案 2 :(得分:1)
我为一个程序编写了一个类似的脚本,我需要在运行之前安装一个虚拟驱动器,所以我添加了一个if exists命令来查找驱动器号。
您可以执行类似的操作,最简单的方法是让mydevenv.cmd将txt文件添加到临时文件夹中。
像echo finished > %temp%\mydevenvdone.txt
然后让主批使用这些行
:waiting
if exist %temp%\mydevenvdone.txt goto envdone
goto waiting
:envdone
del c:\temp\mydevenvdone.txt
start "" "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe"
所以你的批次看起来像这样:
@echo off
if exist %temp%\mydevenvdone.txt del %temp%\mydevenvdone.txt
start /wait "" "C:\mcg_ia_tools-iqtool2\mydevenv.cmd"
:waiting
if exist %temp%\mydevenvdone.txt goto envdone
goto waiting
:envdone
del c:\temp\mydevenvdone.txt
start "" "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe"
我在开始时添加了额外的del line,因为你必须停止批处理,它永远不会清理。
希望这很清楚。