백그라운드에서 Windows 명령 줄을 어떻게 실행할 수 있습니까?


160

활성 사용자와 상호 작용하지 않고 백그라운드에서 Windows 명령 행을 어떻게 실행할 수 있습니까?


1
원하는 것을 지정할 수 있습니까? 백그라운드에서 명령 행에 명령을 수행 하시겠습니까? 또는 백그라운드에서 전체 명령 행을 수행하여 데스크탑에서 보이지 않습니까?
omnibrain

백그라운드에서 명령 줄에서 명령을 수행하는 두 개의 지팡이가 필요하거나 백그라운드에서 전체 명령 줄을 수행 하시겠습니까?
Mohammad AL-Rawabdeh

답변:


37

귀하의 질문은 모호하지만 ServerFault에 대한 게시물 이 있습니다. 여기에는 필요한 정보가 포함될 수 있습니다. 대답은 숨겨진 배치 파일 창을 실행하는 방법을 설명합니다.

대신 Windows 스크립트 파일을 사용하여 자동으로 실행할 수 있습니다. 실행 방법을 사용하면 보이지 않는 모드에서 스크립트를 실행할 수 있습니다. .vbs 이와 같은 파일을 만듭니다

Dim WinScriptHost
Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run Chr(34) & "C:\Scheduled Jobs\mybat.bat" & Chr(34), 0
Set WinScriptHost = Nothing

예약하십시오. 이 예제의 두 번째 인수는 창 스타일을 설정합니다. 0은 "창 숨기기"를 의미합니다.


이것은 완벽 해요. Logitech 용 SetPoint는 절대로 창으로 시작하지 않습니다. 약 3 년 동안 수동으로 시작했습니다. 배치가 어디에 있습니까? 일부 사람들은 C 또는 루트에 이러한 유형의 배치 파일을 넣는 것을 보았습니다.
ejbytes

244

이것은 조금 늦었지만 답변을 직접 검색하는 동안이 질문에 부딪 쳤으며 이것을 발견했습니다.

START /B program

Windows에서 Linux 명령과 가장 가까운 것은 다음과 같습니다.

program &

콘솔 HELP 시스템에서 :

C:\>HELP START

Starts a separate window to run a specified program or command.

START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
      [/NODE <NUMA node>] [/AFFINITY <hex affinity mask>] [/WAIT] [/B]
      [command/program] [parameters]

    "title"     Title to display in window title bar.
    path        Starting directory.
    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.

내가 본 한 가지 문제는 콘솔 창에 두 개 이상의 프로그램을 작성하는 데 약간 혼란스럽고 혼란 스럽다는 것입니다.

사용자와 상호 작용하지 않도록 출력을 파일로 리디렉션 할 수 있습니다.

START /B program > somefile.txt

3
또 다른 명령 창 열지 않기 때문에 나는 최선이 대답을 좋아
wisbucky

3
이것은 나를 위해 작동하지 않는 것 같습니다, 그것은 단지 새로운 cmd 인스턴스를 생성하는 것 같습니다 [?] 그러나 내가 그것을 start /B "" program다음 과 같이 실행 하면 작동했습니다 ...
rogerdpack

1
@rogerdpack 맞습니다. Windows 7에서 어떤 이유로 든 이것이 명령 형식입니다. ""는 필수 제목 매개 변수입니다.
ejbytes

10
불행히도 프로세스를 생성 한 셸 창을 종료하면 프로세스도 종료되는 것처럼 보입니다.
palswim

2
@Qwerty : SetConsoleCtrlHandler에 대한 MSDN을 살펴보십시오
Zan Lynx

68

나는 당신이 의미하는 것을 의심합니다 : 백그라운드에서 무언가를 실행하고 시작된 프로그램이 계속 진행되는 즉시 명령 줄을 다시 가져옵니다.

START "" program

유닉스에 해당하는 것은

program &

7
fg는 무엇입니까? 명령 프롬프트를 닫아도 포 그램이 계속 실행됩니까?
Nenotlep

1
또한 명령 프롬프트에서 프로그램을 실행하고 화면과 같이 때때로 프로그램으로 돌아가고 싶습니다. 명령 프롬프트를 닫을 수 있지만 실행중인 프로그램을 계속 사용할 수 있어야합니다.
Nenotlep

4
그 빈 매개 변수는 start무엇입니까? 그것 없이는 작동하지 않지만 (새로운 명령 인스턴스 만 실행) start도움말은 그것에 대해 아무 말도하지 않으며 모든 매개 변수가 선택적인 것입니다 (또는 이해하지 못합니다).
Dawid Ferenczy Rogožan

@DawidFerenczy start는 빈 매개 변수없이 작동하지만 빈 매개 변수를 사용하면 빈 매개 변수를 사용하지 않았을 때의 설정이 사용되지 않으므로 빈 매개 변수를 사용할 때 별도의 구성으로 쉘을 얻는 것처럼 보입니다. 빈 파라미터 왜 별도의 구성을 사용하는지 궁금합니다.
HelloGoodbye

@Paul START "" program은 나를 위해 새 터미널에서 명령을 시작하지만 program &Unix에서는 명령을 실행하고 출력을 동일한 터미널에 인쇄합니다.
HelloGoodbye


6

이 (설명!) PowerShell 스크립트를 사용할 수 있습니다.

# Create the .NET objects
$psi = New-Object System.Diagnostics.ProcessStartInfo
$newproc = New-Object System.Diagnostics.Process
# Basic stuff, process name and arguments
$psi.FileName = $args[0]
$psi.Arguments = $args[1]
# Hide any window it might try to create
$psi.CreateNoWindow = $true
$psi.WindowStyle = 'Hidden'
# Set up and start the process
$newproc.StartInfo = $psi
$newproc.Start()
# Return the process object to the caller
$newproc

.ps1파일 로 저장하십시오 . 스크립트 실행을 활성화 한 후 ( PowerShell 태그 wiki 에서 스크립트 활성화 참조 ) 하나 또는 두 개의 문자열 (실행 파일 이름 및 선택적으로 인수 행)을 전달할 수 있습니다. 예를 들면 다음과 같습니다.

.\hideproc.ps1 'sc' 'stop SomeService'

이것이 Windows 10에서 작동 함을 확인합니다.


4
yep start / b가 더 이상 작동하지 않습니다.
Sajuuk

3

이것은 내 PHP 내부 서버가 백그라운드로 들어가는 방법입니다. 따라서 기술적으로는 모두에게 효과적입니다.

start /B "" php -S 0.0.0.0:8000 &

감사


1

사용자가 알지 못하고 명령 줄 프로그램을 실행하려면 Windows 서비스로 정의하면 일정대로 실행됩니다.


4
어떻게합니까?
barlop

또는 예약 된 작업-제어판-> 관리 도구-> 예약 된 작업으로 만들거나 schtasksWindows XP 이상에서 명령을 사용할 수 있습니다 (경고 : schtasks복잡함).
LawrenceC

0

두 가지 예가있는 관련 답변 :

  1. 아래는 calc.exe를 엽니 다 :

START / B "my calc" "calc.exe"호출

  1. 때로는 포 그라운드를 원하지 않는 경우 다음과 같이 최소화하여 실행합니다.

START / MIN "my mongod" "% ProgramFiles % \ MongoDB \ Server \ 3.4 \ bin \ mongod.exe"호출


이것은 최소화 된 것으로 보이지 않습니다 :call Start /MIN "c" "calc.exe"
moondra

1
맞습니다, 메모장에서 작동합니다 : call start / min "n" "notepad.exe"
Manohar Reddy Poreddy

따라서 창 응용 프로그램에서는 작동하지만 콘솔 응용 프로그램에서는 작동하지 않습니다. 사람이 통과 할 수도로서, SW_*CreateProcessW비아 STARTUPINFO::wShowWindow(포함 SW_HIDE).
0xC0000022L

위의 "시작"또는 기타 도구와 같은 전체 명령은 무엇입니까? 다른 프로그램을 작성해야합니까?
Manohar Reddy Poreddy


-2

파워 쉘을 사용 하여이 스레드 창 7을 발견했으며 백그라운드에서 실행 파일을 실행합니다. 유닉스 파일 이름 &

예 : start -NoNewWindow 파일 이름

시작 도움

NAME 시작 프로세스

SYNTAX 시작 프로세스 [-FilePath] [[-ArgumentList]] [-Credential] [-WorkingDirectory] [-LoadUserProfile] [-NoNewWindow] [-PassThru] [-RedirectStandardError] [-RedirectStandardInput] [-RedirectStandardOutput] [-Wait] [-WindowStyle {일반 | 숨겨진 | 최소화 | 최대화 됨}] [-UseNewEnvironment] []

Start-Process [-FilePath] <string> [[-ArgumentList] <string[]>] [-WorkingDirectory <string>] [-PassThru] [-Verb
<string>] [-Wait] [-WindowStyle <ProcessWindowStyle> {Normal | Hidden | Minimized | Maximized}]
[<CommonParameters>]

별칭 수액 시작

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.