이 질문에는 이미 답변이 있습니다.
- 완전히 숨겨진 방식으로 배치 파일 실행 23 답변
Windows XP에서 "검은 창"없이 바로 가기를 통해 배치 (.bat 또는 .cmd) 파일을 실행할 수 있습니까?
이 질문에는 이미 답변이 있습니다.
Windows XP에서 "검은 창"없이 바로 가기를 통해 배치 (.bat 또는 .cmd) 파일을 실행할 수 있습니까?
답변:
"testing.bat"를 배치 파일 이름으로 바꾼 후 hidecmd.vbs와 같이 다음을 wscript로 저장하십시오.
Set oShell = CreateObject ("Wscript.Shell")
Dim strArgs
strArgs = "cmd /c testing.bat"
oShell.Run strArgs, 0, false
의 두 번째 매개 변수 oShell.Run
인 intWindowStyle
프로그램의 창 제로 값의 모양을 나타내는 값은 숨겨진 창입니다.
참조는 여기 http://msdn.microsoft.com/en-us/library/d5fk67ky.aspx
.bat
사용하여 관리자로 파일 을 실행하는 방법은 무엇입니까?
이것은 Shaji의 대답을 단순화 한 것입니다. 다음 과 같이 VBScript (.vbs) 스크립트를 통해 배치 스크립트를 실행할 수 있습니다 .
'HideBat.vbs
CreateObject("Wscript.Shell").Run "your_batch_file.bat", 0, True
명령 창이 표시되지 않은 배치 파일이 실행됩니다.
.bat
사용하여 파일을 관리자 로 실행하는 방법은 무엇입니까?
"Windows 스크립팅 사용"답변을 확장하려면 (단일 내장되어 있기 때문에 가장 좋은 방법이라고 생각합니다) 단일 래퍼 스크립트를 사용하고 "실제"배치 파일의 이름을 매개 변수로 전달하여 수행하는 방법이 있습니다. 추가 매개 변수가 배치 파일로 전달됩니다.
If WScript.Arguments.Count >= 1 Then
ReDim arr(WScript.Arguments.Count-1)
For i = 0 To WScript.Arguments.Count-1
Arg = WScript.Arguments(i)
If InStr(Arg, " ") > 0 Then Arg = """" & Arg & """"
arr(i) = Arg
Next
RunCmd = Join(arr)
CreateObject("Wscript.Shell").Run RunCmd, 0, True
End If
예를 들어 위의 파일을 NoShell.vbs
어딘가에 저장하고 다음을 호출하십시오.
NoShell.vbs c:\foo\my_batch_file.bat
마지막으로 .vbs 파일 (예 : Visual Studio의 "외부 도구")을 이해하지 못하는 곳에서이 작업을 실행하려는 C:\Windows\System32\wscript.exe
경우 vbs 파일을 첫 번째 매개 변수로 사용하여 배치 파일을 두 번째로.
"C:\My Files\HideCmd.vbs" c:\foo\my_batch_file.bat
.
"C:\My Files\HideCmd.vbs" c:\my things\my_batch_file.bat
.. 경로 주위에 큰 따옴표, 공백 대신 % 20 또는 두 가지 조합을 시도해도 아무 효과가 없습니다. 파일을 찾을 수 없거나 아무 일도 일어나지 않는다는 오류 메시지가 나타납니다. 내 사용자 오류, 바로 가기의 대상 필드에 대한 Windows 제한 또는 공백이있는 파일 경로를 올바르게 처리하지 못하는 vbs 스크립트의 문제로 인한 것입니까?
'/ B'옵션으로 시작 하십시오 . 예를 들면 다음과 같습니다.
@echo off
start /B go.bat
start /b
새 콘솔을 생성하는 대신 현재 할당 된 콘솔에서 프로그램을 실행하면됩니다. 배치가 cmd로 실행되어야하기 때문에 어쨌든 새로운 것을 얻게 될 것이다 (이것은 [surprise], 콘솔을 연다).
SYSTEM
C / C ++에서 와 같이 쉘 실행을 통해 다른 응용 프로그램에서 배치 파일을 시작하는 데 매우 유용합니다 .
cmd /c foo.cmd
. start
이러한 시나리오에서 사용할 필요는 없으며 절대로 사용 system
해서는 안된다고 주장합니다 CreateProcess
. 배치 파일을 시작하면 이미 하나의 플랫폼에 의존하고 있으므로 작업에 더 적합한 도구를 사용할 수도 있습니다.
cmd /c
. cmd 명령은 필자의 경우에 필요했지만 다른 배치 파일을 실행하는 배치 파일에 대해 지금까지 찾은 모든 stackexchange 답변은 start를 사용하는 데 가장 많이 사용됩니다 ...
start /b go.bat
새 콘솔 (예 : conhost.exe 인스턴스 또는 Windows 7 이전의 csrss.exe의 스레드)을 할당 하지 않습니다 . 그러나 배치 스크립트가 동일한 콘솔에 연결된 cmd.exe의 새 인스턴스로 실행되기 때문에 혼란 스러울 것입니다 . 셸의 두 인스턴스 모두 콘솔에서 입력을 읽도록 경쟁하며 일반적으로 번갈아 나타납니다. 그것은 필요 /w
(예를 start /b /w go.bat
사용하는 것과 유사 번째 인스턴스에서 대기하기 위하여) cmd /c
사용하는 경우 system
. 또한을 호출하는 경우 직접 CreateProcess
실행하십시오 go.bat
. 필요가 없습니다 cmd /c
.
무료 GPL 오픈 소스 "숨겨진 프로세스 생성"
http://www.commandline.co.uk/chp/
Microsoft Security Essentials 및 대부분의 다른 바이러스 / 악성 프로그램 스캐너는 실행 파일 인 chp.exe를 바이러스처럼 바이러스 나 창처럼 표시하거나 작업 표시 줄 단추를 표시하여 지정한 프로그램을 숨기므로 실행 파일을 바이러스로 취급합니다.
바이러스가 아닙니다. 예를 들어 대상 프로세스가 작업 관리자에 나타나지 않도록 숨기지 않습니다. 그리고 물론 소스 코드가 포함되어있어 매우 작고 아무것도하지 않는 것을 볼 수 있습니다.
포함 된 chp.exe가 실제로 해당 소스에서 빌드되었다고 믿을 필요조차 없습니다. 계속해서 포함 된 chp.exe를 버리고 소스에서 직접 컴파일 할 수 있으며 그렇게하는 데 필요한 모든 도구는 무료로 다운로드 할 수 있습니다.
.bat 또는 .cmd 파일 바로 가기를 만든 다음 바로 가기, 속성, 바로 가기 탭, 실행 : 최소화를 마우스 오른쪽 단추로 클릭하십시오. 그런 다음 예약 된 작업에서 .bat / .cmd 파일 대신 바로 가기를 사용하십시오. 그러면 창이 팝업되지 않지만 작업 표시 줄 버튼은 계속 나타납니다.
AutoIt 과 같은 윈도우 스크립팅을 사용할 수 있습니다 .
예를 들어 이것을 AutoIt 스크립트 편집기에 작성하십시오. 상당히 간단합니다
Run("C:\test\batchfile.bat", "", @SW_HIDE)
루프에서 실행하려면
$x=0
Do
Run("C:\test\batchfile.bat", "", @SW_HIDE)
Sleep(5000)
Until $x = 1
.exe로 컴파일하면 완료됩니다.
마찬가지로 오토 핫키에서도 :
#NoTrayIcon ; To prevent momentary icon pop-up
run whatever.bat arg1 arg2,,hide
숨겨진 시작 사용 ($ 20 비용)
숨겨진 시작-콘솔 창 또는 UAC 프롬프트없이 응용 프로그램 및 배치 파일 실행
콘솔 응용 프로그램 및 배치 파일은 Windows 시작 또는 일정에 따라 정기적으로 실행됩니다. 가장 큰 불편은 각 응용 프로그램이 화면에서 깜박이는 콘솔 창을 여는 것입니다. 숨겨진 시작 (또는 Hstart)은 간단한 명령 줄 유틸리티로 백그라운드에서 창없이 콘솔 응용 프로그램 및 배치 파일을 실행하고 Windows 7 및 Vista에서 UAC 권한 상승을 처리하고 여러 명령을 병렬 또는 동기식으로 시작하는 등 다양한 기능을 수행 할 수 있습니다. .
추가 프로그램을 사용하지 않고 간단한 솔루션.
행운을 빕니다!