2015-12-29 4 views
0

Мне нужен файл .bat, который закроет и заново запустит start.cmd (C: \ Users \ Jake \ Desktop \ PocketMine-MP \ start.cmd) < - вот файл место нахождения. Мне нужно, чтобы он закрывался и снова открывался каждые 75 минут. Терминал должен закрыть не может оставаться открытыми и запустить другое все, что я получил до сих пор есть:Перезапустить приложение терминала с командным файлом

@echo off 
:loop 
start "start.cmd" "C:\Users\Jake\Desktop\PocketMine-MP\start.cmd 
timeout /t 20 
taskkill /f /im "start.cmd" >nul 
goto loop 

Сво запуск терминал каждые 20 секунд, как я хочу, это тоже, но его не закрывая старую. Если кто-то может помочь, это поможет мне и моей небольшой сети.

+1

1. Это плохая идея назвать пакетный файл так же, как встроенный в команду как 'start'. 2. Имя изображения '/ im' -' cmd.exe', а не 'start.cmd'. Это название окна, поэтому вы, вероятно, хотите '/ fi 'windowtitle eq start.cmd" '. – dxiv

+0

Это работало, чтобы открыть программу терминала, но она все еще не закрывает ее и не перезапускает процесс, она просто запускает ее, а затем ждет 20 секунд и запускает ее снова. – EmeraldGem585

ответ

2

Переименуйте start.cmd в bat_start.cmd, затем попробуйте следующее.

@echo off 
:loop 
start "bat_start.cmd" "C:\Users\Jake\Desktop\PocketMine-MP\bat_start.cmd" 
timeout /t 20 
taskkill /f /fi "windowtitle eq bat_start.cmd*" /im "cmd.exe" >nul 
goto loop 
0

Если вы используете тот же файл для управления циклом и запускаете файл снова, то это падение в рекурсии. Следующий пример для меня работа,

@echo off 
:loop 
start "test2" "C:\test2.bat" 
timeout /t 60 
taskkill /f /fi "windowtitle eq test2*" /im "cmd.exe" >nul 
goto loop 

test2 файл

@echo off  
echo "start job here"  
:: Do your work here  
pause :: remove the pause, it's just for simulating 
exit