실행될 때 명령 프롬프트가 표시되지 않는 Windows 배치 파일을 어떻게 만듭니 까? [복제]

커맨드 라인에서 시작되는 Redcar라는 루비 젬을 설치했습니다. 그것이 실행될 때, 그것은 끝날 때까지 쉘을 훔칩니다. 그래서 명령 줄 작업을 계속하려면 새 쉘 창을 만들어야합니다. 내가 사용하는 쉘은 MySysGit의 GITBash 쉘입니다.

Redcar를 바로 가기로 시작하기위한 Redcar.bat 파일을 찾았습니다.하지만 BAT 파일을 시작할 때마다 추가 명령 프롬프트 창이 열리지 않도록합니다.

프롬프트를 보지 않고 BAT를 어떻게 실행합니까?



답변

내장 된 명령 프롬프트로 배치 파일을 실행하면 배치 파일이 종료 될 때까지 창을 열어 놓을 수 없습니다.

당신이 일은 배치 파일은 가능한 빨리 종료 있는지 확인하기위한 조치를 취할 것입니다. 가능하면 배치 파일을 수정하여 start명령으로 모든 프로그램을 실행하십시오 . 기본적으로 start프로그램이 종료되기를 기다리지 않고 즉시 리턴하므로 배치 파일이 계속 실행되고 즉시 종료됩니다. 배치 파일을 실행하기 위해 바로 가기를 수정하여 최소화하면 화면에 창을 보지 않고도 작업 표시 줄이 깜박입니다.

이에 대한 한 가지주의 사항은 많은 스크립트 인터프리터가있는 콘솔 모드 프로그램을 실행하는 경우 배치 파일이 프로그램이 종료 될 때까지 대기하고를 사용 start하면 새 콘솔 창이 생성된다는 것입니다. 이 경우, 콘솔 기반의 운영체제 대신 Windows 기반의 운영체제 버전을 실행하면 start됩니다. Perl의 경우 wperl.exe대신에 실행 됩니다 perl.exe. 파이썬 pythonw.exe의 경우 python.exe. 내가 다운로드 한 이전 win32 Ruby 배포판에는가 rubyw.exe있습니다.

마지막 가능성은 타사 도구를 사용하여 숨겨진 창으로 명령 프롬프트를 실행하는 것입니다. 나는 그런 것들에 대해 들어 보았지만 결코 사용하지 않았으므로 특히 당신을 지적 할 것이 무엇인지 모른다.


답변

나는 이것이 DOS 창을 열지 않고 배치 파일을 실행하는 가장 쉽고 짧은 해결책이라고 생각합니다. 명령 세트를 주기적으로 실행하도록 예약 할 때 매우 혼란 스러울 수 있으므로 DOS 창이 계속 팝업됩니다. 여기에 해결책이 있습니다. . VB 스크립트를 사용하여 배치 파일 호출 …

Set WshShell = CreateObject("WScript.Shell" )
WshShell.Run chr(34) & "C:\Batch Files\ mycommands.bat" & Chr(34), 0
Set WshShell = Nothing

위의 줄을 편집기에 복사하고 파일 확장자를 .VBS로 저장하십시오. .BAT 파일 이름과 경로를 적절히 편집하십시오. 그런 다음 .vbs 파일을 실행하면 마술이 일어납니다!


답변

명령 프롬프트에서 START / MIN CMD.EXE / C mybatchfile.bat를 사용하여 다른 배치 파일을 실행할 수 있습니다.

외부에서 cmd 콘솔 창을 가져 오지만이를 피하기 위해 속성을 수정하여 최소화바로 가기 파일을 만들있습니다 .


답변

이렇게하려면 Bat To Exe Converter 프로그램을 사용 하여 배치 파일을 실행 파일로 변환하십시오.

실행 파일로 변환 할 때 가시성 섹션에 파일을 보이지 않는 응용 프로그램 으로 실행하는 옵션이 있습니다 . 따라서 실행할 때 창없이 실행됩니다.

exe를 박쥐


답변

Dennis Williamson의 답변을 계속하여 배치 파일을 편집하고 START /B실행중인 명령에 추가 (앞에 추가) 할 수 있습니다.

예를 들어, 퍼티를 실행하고 동일한 문제 (추가 CMD)가있는 배치 파일이 있으므로 다음과 같이 작성했습니다.

@ECHO OFF
START / B putty.exe -load name_of_my_config_file

완벽하게 작동했습니다.


답변

이것을 시도하십시오 :

START /B batchfile

barlop 님이 추가 한 메모

시작 /? / B에 대해

 B           Start application without creating a new window. The
             application has ^C handling ignored. Unless the application
             enables ^C processing, ^Break is the only way to interrupt
             the application.


답변

귀하의 문제에 대해 명확하지 않지만 일부 배치 파일과 함께 주 배치 파일을 시작하는 것이 유일한 목적인 “dumy”를 사용합니다.

따라서 GO.BAT는 다음을 갖습니다.

cmd /c go2.bat %1 %2 %3
exit

종료하면 명령 프롬프트 창이 닫히고 그렇지 않으면 열린 상태로 유지됩니다.

GO2.BAT에는 실제로 원하는 배치 파일 내용이 있습니다.

  @echo off
  set userid=

  if NOT [%1]==[] goto userid:
  set /p userid=Enter USERID:
  goto set_usr:

 :userid
 set userid=%1
 shift

 :set_usr
 if %userid%==steven goto steven:
 ...