2013-07-19 5 views
2

У меня есть командный файл, который перемещает несколько файлов и запускает программу, и по какой-то причине после того, как командный файл проходит через все команды в нем, он не Закрыть. Командная строка остается открытой на экране, поэтому я хочу ее закрыть.batchfile taskkill/IM cmd.exe не закрывается cmd.exe

Я попытался ввести taskkill/IM cmd.exe в качестве последней строки команды в конце командного файла, но он все еще не закрывает cmd.exe, любая идея почему? Он должен закрыть его правильно? Вот командный файл:

@echo off 


mkdir C:\Windows\Temp 

if exist "C:\Users\" goto win7 

if exist "C:\Documents and Settings\" goto winxp 

:win7 
mkdir C:\folder1 
xcopy /s /Y \\server1\Public C:\folder1 
C:\folder1\application1 

goto exit 

:winxp 
mkdir "C:\Documents and Settings\All Users\Application Data\Organization\orgapp" 
mkdir C:\folder1 

xcopy /s /Y \\server1\Public C:\folder1 
xcopy /s /Y C:\folder1\xp\application1 "C:\Documents and Settings\All Users\Application Data\Organization\orgapp" 

xcopy /s /Y C:\folder1\xp\application2 "C:\Documents and Settings\All Users\Application Data\Organization\orgapp" 
"C:\Documents and Settings\All Users\Application Data\Organization\orgapp\application1" 
goto exit 

:exit 
taskkill /IM cmd.exe 
+0

Пожалуйста отправьте пакетный файл. – Gabe

+0

@Gabe, конечно, я только что опубликовал командный файл. – user216485

+0

Не используйте что-то вроде 'taskkill/IM cmd.exe' для выхода из скрипта. Вы выходите из сценария с 'exit/b'. С учетом сказанного это помогает, если вы запускаете приложения через 'start 'C: \ path \ to \ application", а не просто "C: \ path \ to \ application"?? –

ответ

1

Попробуйте start "" "C:\folder1\application1" в обоих местах и ​​удалить Taskkill команду (или заменить его exit/b, если вам нужно). Здесь нужны дополнительные двойные кавычки.

0

Я рекомендую использовать:

: выход
выход

или вызов другой файл, который имеет:

выход/б, который прекращает cmd.exe, а не только сценарий, если бы это было в тот же файл.

Я думаю, что «выход» будет работать в любом случае.

0

я не знаю, что у пытается сделать ... но если и хотят выйти/закрыть этот пакетный файл только что использовал

:Exit 
exit 

если вы хотите силой закрыть запущенные приложения друга попробовать эти команды

:Exit 
Taskkill /IM cmd.exe /f /t 

Пример: (только Это просто для цели образования.)

@echo off` 
. Press continue if you wanna close explorer.exe. 
pause 
Taskkill /IM explorer.exe /f /t 

функция будет убить задачу исследователя .exe

+0

Что делает/T? – skatun

2

Вам нужно "запустить от имени администратора", чтобы правильно называть Taskkill

6

Вы можете попробовать:

@echo off 
taskkill /f /im cmd.exe 
:exit 
+0

отлично работает со мной в окнах 10 –

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