활성 사용자와 상호 작용하지 않고 백그라운드에서 Windows 명령 행을 어떻게 실행할 수 있습니까?
활성 사용자와 상호 작용하지 않고 백그라운드에서 Windows 명령 행을 어떻게 실행할 수 있습니까?
답변:
귀하의 질문은 모호하지만 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은 "창 숨기기"를 의미합니다.
이것은 조금 늦었지만 답변을 직접 검색하는 동안이 질문에 부딪 쳤으며 이것을 발견했습니다.
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
start /B "" program
다음 과 같이 실행 하면 작동했습니다 ...
나는 당신이 의미하는 것을 의심합니다 : 백그라운드에서 무언가를 실행하고 시작된 프로그램이 계속 진행되는 즉시 명령 줄을 다시 가져옵니다.
START "" program
유닉스에 해당하는 것은
program &
start
무엇입니까? 그것 없이는 작동하지 않지만 (새로운 명령 인스턴스 만 실행) start
도움말은 그것에 대해 아무 말도하지 않으며 모든 매개 변수가 선택적인 것입니다 (또는 이해하지 못합니다).
start
는 빈 매개 변수없이 작동하지만 빈 매개 변수를 사용하면 빈 매개 변수를 사용하지 않았을 때의 설정이 사용되지 않으므로 빈 매개 변수를 사용할 때 별도의 구성으로 쉘을 얻는 것처럼 보입니다. 빈 파라미터 왜 별도의 구성을 사용하는지 궁금합니다.
START "" program
은 나를 위해 새 터미널에서 명령을 시작하지만 program &
Unix에서는 명령을 실행하고 출력을 동일한 터미널에 인쇄합니다.
이 (설명!) 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에서 작동 함을 확인합니다.
두 가지 예가있는 관련 답변 :
START / B "my calc" "calc.exe"호출
START / MIN "my mongod" "% ProgramFiles % \ MongoDB \ Server \ 3.4 \ bin \ mongod.exe"호출
call Start /MIN "c" "calc.exe"
SW_*
에 CreateProcessW
비아 STARTUPINFO::wShowWindow
(포함 SW_HIDE
).
이 링크에서 올바른 방법을 확인할 수 있습니다.
명령 창이 나타나지 않고 예약 된 작업을 실행하는 방법
요약하면 '사용자 로그온 여부에 관계없이'확인란을 선택해야합니다. '확인'을 누른 후 작업 사용자 자격 증명을 입력해야합니다.
파워 쉘을 사용 하여이 스레드 창 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>]
별칭 수액 시작