2016-02-12 137 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

糟糕我在開始行中忘記了一些「」。嘗試添加這些。他們每次都得到我。我已經更新了上面的腳本。 –