2016-02-12 2 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, визуальная студия не загружается

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, чтобы создать задержку почти любой суммой.

Переадресация в конце команды скрывает вывод от загрязнения выходного пакета.

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 exist, которая ищет букву диска.

Вы могли бы сделать что-то похожее, самым простым способом было бы иметь ваш 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

Ой, я забыл некоторые «» в стартовых строках. Попробуйте добавить их. Они получают меня каждый раз. Я обновил сценарий выше. –

Смежные вопросы