2010-05-11 17:31:57 +0000 2010-05-11 17:31:57 +0000
134
134

如何在不启动 "命令窗口 "的情况下运行批处理文件?

在Windows XP上,我可以通过快捷方式运行一个批处理文件(.bat或.cmd),而不出现 “黑窗口 "吗?

答案 (9)

88
88
88
2010-05-11 19:55:49 +0000

将 “testing.bat "替换为批处理文件的名称后,保存为wscript,例如hidecmd.vbs。

Set oShell = CreateObject ("Wscript.Shell") 
Dim strArgs
strArgs = "cmd /c testing.bat"
oShell.Run strArgs, 0, false

oShell.Run的第二个参数是intWindowStyle的值,表示程序窗口的外观,0值为隐藏窗口。

的参考文献在这里 http://msdn.microsoft.com/en-us/library/d5fk67ky.aspx

45
45
45
2012-02-15 09:52:03 +0000

这只是对Shaji的回答进行了简化。你可以通过VBScript(.vbs)脚本来运行你的批处理脚本,比如:

'HideBat.vbs
CreateObject("Wscript.Shell").Run "your_batch_file.bat", 0, True

这将会执行你的批处理文件,不显示命令窗口。

21
21
21
2014-01-10 17:50:44 +0000

只是为了扩展 “使用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 c:\foo\my_batch_file.bat

所以,例如,将上面的文件保存为NoShell.vbs,然后调用:

&001

最后,如果你想从不懂.vbs文件的地方运行这个文件(例如Visual Studio中的 "外部工具"),你会希望用vbs文件作为第一个参数,而你的批处理文件作为第二个参数来调用C:\Windows\System32\wscript.exe

9
9
9
2010-05-11 19:50:45 +0000

你可以改变快捷方式的属性,使其最小化运行。

要想完全隐身运行,你需要其他的东西,比如Windows Scripting。

9
9
9
2010-05-11 17:36:13 +0000

使用 start ,并加上 ‘/B’ 选项。例如:

@echo off
start /B go.bat
6
6
6
2012-10-22 21:17:19 +0000

免费的GPL开源软件 “Create Hidden Process” http://www.commandline.co.uk/chp/

Microsoft Security Essentials,以及大多数其他病毒/恶意软件扫描器都会把chp.exe这个可执行文件当作病毒来处理,因为它可以隐藏你指定的任何程序,不显示窗口或任务栏按钮,就像病毒一样。它不会隐藏目标进程在任务管理器中出现,比如说它不会隐藏目标进程。当然也包含了源代码,所以你可以看到它的体积非常小,除了运行你给它的任何程序外,什么都不做。

你甚至不需要相信所包含的chp.exe真的是由那个源码建立的。你可以直接丢弃内含的chp.exe,从源码中编译自己的程序,所有必要的工具甚至都可以免费下载。


  • *

你也可以直接在.bat或.cmd文件上做一个快捷方式,然后在快捷方式上右键点击,属性,快捷方式选项卡,运行。最小化。然后在计划任务中,直接使用快捷方式代替.bat/.cmd文件。这样可以防止弹出窗口,但任务栏按钮仍然会出现。

6
6
6
2013-05-29 03:48:54 +0000

你可以使用像AutoIt这样的窗口脚本。

作为一个例子,只需在AutoIt脚本编辑器中写下这样的内容。这很简单

Run("C:\test\batchfile.bat", "", @SW_HIDE)

如果你想循环运行,

$x=0
Do
 Run("C:\test\batchfile.bat", "", @SW_HIDE)
 Sleep(5000)
Until $x = 1
#NoTrayIcon ; To prevent momentary icon pop-up
run whatever.bat arg1 arg2,,hide

编译成.exe就可以了。

6
6
6
2014-10-27 08:23:11 +0000

简单的解决方案,无需使用任何额外的程序。

  1. 创建你要执行的批处理文件并测试。为它创建一个快捷方式。
  2. 编辑快捷方式的属性:在快捷方式选项卡中,选择运行最小化。4.给它指定一个热键,就可以了!

祝你好运! 4.在 “快捷方式 "选项卡中,选择 "运行最小化"。

5
5
5
2010-05-12 16:03:41 +0000

使用 隐藏式启动 (费用 20 元)

隐藏式启动 - 在没有控制台窗口或 UAC 提示符的情况下运行应用程序和批处理文件

在 Windows 启动时或计划中定期运行控制台应用程序和批处理文件。这样做的主要不便之处在于,每个应用程序都会打开一个在屏幕上闪烁的控制台窗口。Hidden Start(或Hstart)是一个轻量级的命令行工具,它可以让你在没有任何窗口的情况下在后台运行控制台应用程序和批处理文件,处理Windows 7和Vista下的UAC权限提升,并行或同步启动多个命令等。