Câu hỏi này đã có câu trả lời ở đây:
- Chạy một tệp bó theo cách hoàn toàn ẩn 23 câu trả lời
Trên Windows XP, tôi có thể chạy tệp bó (.bat hoặc .cmd) qua phím tắt mà không có "cửa sổ đen" không?
Câu hỏi này đã có câu trả lời ở đây:
Trên Windows XP, tôi có thể chạy tệp bó (.bat hoặc .cmd) qua phím tắt mà không có "cửa sổ đen" không?
Câu trả lời:
Lưu ví dụ dưới dạng wscript, ví dụ, hidecmd.vbs sau khi thay thế "tests.bat" bằng tên tệp bó của bạn.
Set oShell = CreateObject ("Wscript.Shell")
Dim strArgs
strArgs = "cmd /c testing.bat"
oShell.Run strArgs, 0, false
Tham số thứ hai của oShell.Run
là intWindowStyle
giá trị biểu thị sự xuất hiện của cửa sổ chương trình và giá trị 0 dành cho cửa sổ ẩn.
Tham khảo ở đây http://msdn.microsoft.com/en-us/l Library / d5fk67ky.aspx
.bat
tập tin như quản trị viên bằng phương pháp này?
Đây chỉ là một sự đơn giản hóa câu trả lời của Shaji. Bạn có thể chạy tập lệnh bó của mình thông qua tập lệnh VBScript (.vbs) như thế này:
'HideBat.vbs
CreateObject("Wscript.Shell").Run "your_batch_file.bat", 0, True
Điều này sẽ thực thi tệp bó của bạn mà không có cửa sổ lệnh được hiển thị.
.bat
tập tin như quản trị viên bằng phương pháp này?
Chỉ cần mở rộng câu trả lời "Sử dụng Windows Scripting" (mà tôi cho là tốt nhất vì đã tích hợp sẵn) đây là cách thực hiện bằng cách sử dụng một tập lệnh bao bọc duy nhất và chuyển tên của tệp bó "thực" làm tham số. Các tham số bổ sung sẽ được chuyển vào tệp bó.
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
Vì vậy, ví dụ lưu tập tin trên như NoShell.vbs
một nơi nào đó sau đó gọi:
NoShell.vbs c:\foo\my_batch_file.bat
Cuối cùng, nếu bạn đang tìm cách chạy tệp này từ một nơi không hiểu tệp .vbs (chẳng hạn như "Công cụ bên ngoài" trong Visual Studio), bạn sẽ muốn gọi C:\Windows\System32\wscript.exe
với tệp vbs làm tham số đầu tiên và của bạn tập tin hàng loạt như là thứ hai.
"C:\My Files\HideCmd.vbs" c:\foo\my_batch_file.bat
.
"C:\My Files\HideCmd.vbs" c:\my things\my_batch_file.bat
. Bất kể điều gì tôi cố gắng cho đường dẫn - trích dẫn kép xung quanh tất cả,% 20 thay cho không gian hoặc kết hợp cả hai, không có gì hoạt động. Tôi nhận được một thông báo lỗi cho tôi biết rằng tập tin không thể được tìm thấy hoặc không có gì xảy ra. Đây có phải là do lỗi người dùng của tôi không, giới hạn của Windows với trường Target cho các phím tắt hoặc sự cố với tập lệnh vbs trong đó nó không xử lý đúng đường dẫn tệp với khoảng trắng?
Sử dụng bắt đầu với tùy chọn '/ B'. Ví dụ:
@echo off
start /B go.bat
start /b
sẽ chỉ chạy chương trình trong bảng điều khiển hiện được phân bổ thay vì sinh ra một chương trình mới. Dù sao bạn cũng sẽ nhận được một cái mới vì lô phải chạy với cmd (lần lượt [ngạc nhiên], mở giao diện điều khiển).
SYSTEM
trong C / C ++).
cmd /c foo.cmd
. Hoàn toàn không cần sử dụng start
trong các tình huống đó, và, tôi cho rằng system
không nên sử dụng theo hướng có lợi CreateProcess
. Bằng cách khởi chạy một tệp bó, bạn đã phụ thuộc vào một nền tảng, bạn cũng có thể sử dụng các công cụ tốt hơn cho công việc.
cmd /c
trước đây. Lệnh cmd là những gì tôi cần trong trường hợp của mình, nhưng tất cả các câu trả lời stackexchange tôi tìm thấy cho đến nay, về một tệp bó chạy một tệp bó khác, có câu trả lời hàng đầu để sử dụng bắt đầu ...
start /b go.bat
sẽ không phân bổ bảng điều khiển mới (ví dụ: conhost.exe - hoặc một chuỗi trong csrss.exe trước Windows 7). Tuy nhiên, nó sẽ tạo ra một mớ hỗn độn vì tập lệnh bó được chạy với một phiên bản mới của cmd.exe được gắn vào cùng một bàn điều khiển . Cả hai phiên bản của shell sẽ cạnh tranh để đọc đầu vào từ bàn điều khiển, thường là xen kẽ. Nó cần /w
(ví dụ start /b /w go.bat
) để chờ trong trường hợp thứ hai, tương tự như sử dụng cmd /c
nếu sử dụng system
. Ngoài ra, nếu bạn đang gọi CreateProcess
, hãy chạy go.bat
trực tiếp. Không cần cmd /c
.
Mã nguồn mở GPL miễn phí "Tạo quy trình ẩn"
http://www.commandline.co.uk/chp/
Microsoft Security Essentials và có lẽ hầu hết các trình quét vi-rút / phần mềm độc hại khác sẽ coi chương trình thực thi, chp.exe, là vi-rút vì nó ẩn bất kỳ chương trình nào bạn chỉ định hiển thị cửa sổ hoặc nút thanh tác vụ, giống như vi-rút.
Nó không phải là virus. Nó không che giấu quá trình mục tiêu xuất hiện trong trình quản lý tác vụ chẳng hạn. Và tất nhiên, mã nguồn được bao gồm để bạn có thể thấy rằng nó rất nhỏ và không làm gì ngoài việc chạy bất kỳ chương trình nào bạn cung cấp.
Bạn thậm chí không cần phải tin rằng chp.exe đi kèm thực sự được xây dựng từ nguồn đó. Bạn có thể tiếp tục và loại bỏ chp.exe đi kèm và tự biên dịch từ nguồn và tất cả các công cụ cần thiết để làm như vậy thậm chí là miễn phí và có thể tải xuống.
Bạn cũng có thể chỉ cần tạo một lối tắt đến tệp .bat hoặc .cmd, sau đó nhấp chuột phải vào phím tắt, Thuộc tính, tab Phím tắt, Chạy: Thu nhỏ. Sau đó, trong các tác vụ theo lịch trình, sử dụng phím tắt thay vì tệp .bat / .cmd trực tiếp. Điều đó sẽ ngăn cửa sổ bật lên, nhưng nút thanh tác vụ vẫn sẽ xuất hiện.
Bạn có thể sử dụng kịch bản cửa sổ như AutoIt .
Ví dụ, chỉ cần viết nó cho trình soạn thảo kịch bản AutoIt. Nó khá đơn giản
Run("C:\test\batchfile.bat", "", @SW_HIDE)
Nếu bạn muốn chạy nó trong một vòng lặp,
$x=0
Do
Run("C:\test\batchfile.bat", "", @SW_HIDE)
Sleep(5000)
Until $x = 1
Biên dịch nó dưới dạng .exe - và bạn đã hoàn thành.
Tương tự như vậy, trong AutoHotkey :
#NoTrayIcon ; To prevent momentary icon pop-up
run whatever.bat arg1 arg2,,hide
Sử dụng Bắt đầu ẩn (chi phí $ 20)
Hidden Start - Chạy các ứng dụng và tập tin hàng loạt mà không có cửa sổ Console hoặc UAC Prompt
Các ứng dụng bảng điều khiển và các tệp bó thường được chạy khi khởi động Windows hoặc theo lịch. Sự bất tiện chính của điều này là mỗi ứng dụng mở một cửa sổ giao diện điều khiển nhấp nháy trên màn hình. Hidden Start (hoặc Hstart) là một tiện ích dòng lệnh nhẹ cho phép bạn chạy các ứng dụng bảng điều khiển và các tệp bó mà không có bất kỳ cửa sổ nào trong nền, xử lý độ cao đặc quyền UAC trong Windows 7 và Vista, bắt đầu nhiều lệnh song song hoặc đồng bộ, và nhiều hơn nữa .
Giải pháp đơn giản, không sử dụng bất kỳ chương trình bổ sung.
Chúc may mắn!