Как закрыть пакетный файл, вызванный из другого пакетного файла?

#windows #batch-file

Вопрос:

У меня есть пакетный файл, выполняющий следующее:

 curl.exe -o file.bat https://www.examplewebsite.com/file.txt/ start /min file.bat /c exit  

И в «file.bat» последняя часть кода:

 start /b "" cmd /c del "%~f0"amp;exit /b  

То, что я пытаюсь заставить «файл.bat» сделать, это удалить себя, и эта часть работает. Но тогда окно командной строки все еще открыто, когда я хочу, чтобы оно закрылось.

Кто-нибудь может мне помочь? Спасибо.

Комментарии:

1. Я не уверен , почему вы включаете /c аргумент file.bat , потому что вы его не используете. Я также не уверен в цели amp;exit /b . Кроме того, лучший способ, который я нашел, чтобы заставить пакетный файл удалить сам себя, — это просто (GoTo) 2gt;NUL amp; Del "%~f0" .

2. @Compo Он удаляется сам, но окно не закрывается. Есть ли какой-нибудь способ это исправить?

3. Все это зависит от содержимого пакетного файла start /min file.bat /c , в котором находится строка, и от того, как именно она вызывается. Ни одна из этих вещей не была предоставлена, поэтому мы не можем найти решение без этой информации.

4. @Compo Извини, я обновил пост. Поэтому я хочу загрузить файл, запустить файл, а затем убедиться, что все закрывается красиво и аккуратно, но проблема в том, что cmd никогда не закрывается.

5. Таким образом, ваша curl.exe команда загружает пакетный файл, а затем запускает его, который впоследствии удаляется. Все, что вы делаете, вызывает тревогу, поэтому в данном случае, мне жаль, но я не хочу оказывать вам дальнейшую помощь в выполнении вашей задачи.