2016-02-12 179 views
1

这里运行具有延迟两个命令是我的批处理文件在批处理文件

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> 

回答

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参数来创建几乎任何ammount的的延迟。

命令末尾的重定向隐藏了输出污染批输出。

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" 

会适合您的更好。

+0

加载* .cmd文件需要一些时间,所以我需要一些延迟 – Gilad

+0

请查看我的更新问题 – Gilad

+0

您的运行报告显示'... cmd/k ...'只能在您的'mydevenv中。 cmd“,你还没有发布,或者你有'start.bat'或'start.cmd'文件 - 如果是这样的话,你应该改变这个文件的名字。 – Magoo

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" 

我添加了额外的德尔线在刚开始时你必须停止批处理,并且它永远不会清理。

希望这是明确的。

+0

,它不会像预期的那样做任何事情,它只是打开一些命令行窗口 – Gilad

+0

糟糕我在开始行中忘记了一些“”。尝试添加这些。他们每次都得到我。我已经更新了上面的脚本。 –