다른 bat 파일의 백그라운드에서 bat 파일을 어떻게 실행합니까?
필요한 모든 프로그램을 시작하는 아침에 실행하는 "설치"스크립트가 있습니다. 이제 이들 중 일부는 추가 환경 설정이 필요하므로 작은 BAT 스크립트로 래핑해야합니다.
백그라운드에서 Windows XP에서 이러한 스크립트를 어떻게 실행합니까?
CALL env-script.bat
즉, 설정 스크립트는 환경 스크립트의 명령이 종료 된 후에 만 계속 될 수 있습니다.
START/B env-script.bat
동일한 명령 프롬프트에서 CMD.exe의 다른 인스턴스를 실행하여 정말 지저분한 상태로 둡니다 (중첩 된 CMD.exe의 출력을보고 잠시 동안 키보드가 작동하지 않고 스크립트가 실행되지 않음).
START/B CMD env-script.bat
동일한 결과를 산출합니다. CMD의 플래그가 내 청구서와 일치하지 않는 것 같습니다.
실제로 다음은 저에게 잘 작동하며 새 창을 만듭니다.
test.cmd :
@echo off
call "cmd /c start test2.cmd"
call "cmd /c start test3.cmd"
echo Foo
pause
test2.cmd
@echo off
echo Test 2
pause
exit
test3.cmd
@echo off
echo Test 3
pause
exit
에 매개 변수를 사용하여 그 결합 start
과 같은, /min
당신의 앞에 산란에 새 창을 원하지 않는 경우 모세는 지적했다.
2 살이지만 완전성을 위해 ...
표준 인라인 접근 방식 : (즉 &
, Linux에서 사용할 때 얻을 수있는 동작 )
START /B CMD /C CALL "foo.bat" [args [...]]
참고 : 1. CALL
.bat 파일과 쌍을 이룹니다. 일반적으로 이동하는 위치이기 때문입니다. (즉, 이는 CMD /C CALL "foo.bat"
양식을 비동기로 만들기 위한 확장 일뿐 입니다. 일반적으로 종료 코드를 올바르게 가져 오는 데 필요하지만 문제가되지 않습니다. 여기.); 2. .bat 파일 주위의 큰 따옴표는 이름에 공백이 포함 된 경우에만 필요합니다. (이름은 그 가능성이 더 많은 경로 일 수 있습니다.)
출력을 원하지 않는 경우 :
START /B CMD /C CALL "foo.bat" [args [...]] >NUL 2>&1
배트가 독립 콘솔에서 실행되도록하려면 : (즉, 다른 창)
START CMD /C CALL "foo.bat" [args [...]]
나중에 다른 창이 계속 표시되도록하려면 :
START CMD /K CALL "foo.bat" [args [...]]
참고 : 열린 창을 일반 콘솔로 특별히 사용하려는 사용자가없는 한 이것은 실제로 잘못된 형식입니다. 출력을보기 위해 창을 계속 유지 PAUSE
하려면 bat 파일 끝에를 두는 것이 좋습니다 . 또는 아직 ^& PAUSE
명령 줄 뒤에 추가 합니다.
START CMD /C CALL "foo.bat" [args [...]] ^& PAUSE
START는 CMD 스크립트에서 백그라운드로 무언가를 실행하는 유일한 방법이므로 계속 사용하는 것이 좋습니다. / B 수정 자 대신 / MIN을 시도하여 새로 생성 된 창이 방해되지 않도록합니다. 또한 / LOW 또는 / BELOWNORMAL을 사용하여 우선 순위를 낮게 설정할 수 있으므로 시스템 응답 성이 향상됩니다.
Other than foreground/background term. Another way to hide running window is via vbscript, if is is still available in your system.
DIM objShell
set objShell=wscript.createObject("wscript.shell")
iReturn=objShell.Run("yourcommand.exe", 0, TRUE)
name it as sth.vbs and call it from bat, put in sheduled task, etc. PersonallyI'll disable vbs with no haste at any Windows system I manage :)
Create a new C# Windows application and call this method from main:
public static void RunBatchFile(string filename)
{
Process process = new Process();
process.StartInfo.FileName = filename;
// suppress output (command window still gets created)
process.StartInfo.Arguments = "> NULL";
process.Start();
process.WaitForExit();
}
This works on my Windows XP Home installation, the Unix way:
call notepad.exe &
Actually is quite easy with this option at the end:
c:\start BATCH.bat -WindowStyle Hidden
'program tip' 카테고리의 다른 글
Python을 통한 Linux의 프로세스 목록 (0) | 2020.09.18 |
---|---|
자바 스크립트 / 정규식 : 괄호 사이의 텍스트 제거 (0) | 2020.09.18 |
“죽은 쇠고기”는 무엇을 의미합니까? (0) | 2020.09.18 |
ImageView 배율 TOP_CROP (0) | 2020.09.18 |
페이지로드가 완료되었는지 감지 (0) | 2020.09.18 |