2009-08-05 11 views
49

Poszukuję mechanizmu do tłumienia zaproszenia "Zakończ zadanie wsadowe? (T/N)", które otrzymuję za każdym razem, gdy naciskam CTRL-C w Program rozpoczął się z pliku wsadowego:Jak mogę ukryć "zakończenie zadania wsadowego" w cmd.exe?

batch file: jsshell.bat:

@echo off 
java -jar build-scripts\contrib\rhino1.7R1.jar 

a następnie uruchamiając go na powłoce cmd przez:

> jsshell.bat 

który daje mi powłokę, że można wyjść przez CTRL-C, który po wyjściu daje mi nieprzyjemna wiadomość:

+0

FWIW, ta dodatkowa aplikacja rozwiązuje problem poprzez ustawienie i przynosi o wiele więcej gadżetów. https://code.google.com/p/clink/ Nie można dodać jako odpowiedzi, ponieważ jest ona zamknięta. – Macke

+0

Zobacz także http://superuser.com/questions/35698/how-to-supress-terminate-batch-job-y-n-confirmation –

Odpowiedz

7

Nie zapomnij rozważyć obejścia problemu, unikając skryptów wsadowych.

  • Doskey macros może zastąpić skrypty wsadowe w jednym linku, takie jak cytowany powyżej. (Obciążenie je w skrypcie Autorun.)
  • Cscript.exe jest dostępny na każdym nowoczesnym komputerze z systemem Windows i można uruchomić JavaScript i programy VBScript z linii poleceń
  • Jeśli dodać rozszerzenia plików do swojego ulubionego języka skryptowego (Perl, Python, Ruby itp.) Do zmiennej środowiskowej PATHEXT i dodaj skrypt do swojej ścieżki, możesz wykonać je bezpośrednio bez skryptu wsadowego.
+1

Wszystkie dobre punkty, ale zamierzam to zrobić po wyjęciu z pudełka po tym, jak rzeczy są sprawdzane z SVN, więc dodawanie rzeczy do PATHEXT lub autorun nie działa. – cellcortex

+0

Twoi użytkownicy musieli zainstalować Java, prawda? To tylko jeszcze jeden krok: –

+1

@cellcortex: Zwróć uwagę, że VBScript jest już w Pathext. – Joey

14

Ta site zawiera instrukcje dotyczące poprawiania cmd.exe, aby nie wyświetlać komunikatu.

+17

Świętą bzdurą, która jest pewną naprawą.Na pewno musi być mniej natarczywy sposób? –

+3

Kiedy ostatnio masz włączony NOOP? Okay, nie jest to dobre rozwiązanie, jeśli chcesz, aby ktokolwiek inny używał. – WireGuy

+19

Dzięki, ale łatanie cmd.exe jest czymś, czego nie chciałbym robić. – cellcortex

8

Tak, jest bardziej elegancki sposób niż łatanie cmd.exe. Po prostu ustaw START przed komendą. Na swoim przykładzie linia będzie czytać jak: „START java -jar budować skrypty \ contrib \ rhino1.7R1.jar”

+6

To wydaje się otwierać nowe okno konsoli i działać w tym. – cellcortex

+1

użyj start/B, aby nie uzyskać nowego okna –

+1

@JonnyLeeds Nie masz nowego okna w ten sposób, ale pojawia się kolejny problem - po wpisaniu "exit" w oryginalnym oknie powłoki, po prostu nie będzie blisko. – egor83

2

Poniższa modyfikacja tłumi „Zakończ zadanie wsadowe (Y/N)?” i nowa okno konsoli:

start cmd /c java -jar build-scripts\contrib\rhino1.7R1.jar 
+3

Powoduje otwarcie nowego okna konsoli na moim komputerze. (Jestem na win7, ale wątpię, że to robi różnicę.) –

+0

Otwiera dla mnie 2 nowe okna konsoli. – cellcortex

+0

Hmm, dziwne. Przykładem, który działa dla mnie jest uruchomienie GWT w przeglądarce trybu hostowanego: start cmd/c% JAVA_HOME%/bin/java% JAVA_OPTS% -classpath% CLASSPATH% com.google.gwt.dev.GWChell% GWT_OPTS% Powoduje to uruchomienie okna konsoli po dwukrotnym kliknięciu pliku BAT, ale - jak wspomniałem powyżej - powoduje wstrzymanie zadania wsadowego Terminate? (T/N) "przy wyjściu i blokuje uruchamianie dodatkowego okna konsoli. Może ten" nosorożec "jest aplikacją konsolową i dlatego musi działać w konsoli? – Elmo

7

FWIW, orurowanie "N" jako dane wejściowe polecenia zadziałało dla niektórych plików wsadowych (ale faktycznie chciałem nowe okno). Może to zadziała również dla ciebie.

(echo. N)| cmd /c java -jar build-scripts\contrib\rhino1.7R1.jar 
+0

Należy pamiętać to może powodować problemy z la nguages ​​inny niż angielski. To miłe obejście. –

+0

to działa świetnie przynajmniej na Windows 7 –

+0

WOW to działa gread na mojej maszynie Win10 z locale FR, inteligentne i tak przyjazne dla użytkownika, jak to jest zapamiętane w kolejce historii jako oryginalne polecenie ... w porównaniu do łatania cmd.exe .. – dmidz

2
@start cmd /c java -jar build-scripts\contrib\rhino1.7R1.jar 
@exit 

uczyni to tylko jedno okno

+0

Otworzy nowe okno i zamknie bieżące. Nieco inny, zwłaszcza, że ​​nowe okno nie będzie miało żadnych ustawień rozmiaru. Poza tym prawdopodobnie miałeś na myśli '/ k', ponieważ'/c' zamknie drugie okno po wyjściu programu, pozostawiając cię bez okien na końcu. – jpmc26

+0

Jak dodać CZEKAĆ za pomocą tego polecenia? "start/WAIT CMD/K" nie działa –

1

Spróbuj tego. Otwiera nową konsolę, ale blokuje drugą, gdy jest otwarta.

@echo off 
start /WAIT java -jar build-scripts\contrib\rhino1.7R1.jar 
20

Na tym site, w końcu znalazłem skutecznego rozwiązania:

script.cmd < nul 

nie mieć do tego typu za każdym razem zrobiłem drugi skrypt o nazwie script2.cmd w tym samym folderze z linią powyżej. Możesz odwrócić nazwy. Działa dla mnie, ale do tej pory testowałem tylko na XP.

Powiązane problemy