在 Windows XP 上,我可以通过快捷方式运行批处理文件(.bat 或 .cmd),而不会出现“黑屏”吗?
答案1
将以下内容保存为 wscript,例如,将“testing.bat”替换为您的批处理文件的名称,然后将其保存为 hidecmd.vbs。
Set oShell = CreateObject ("Wscript.Shell")
Dim strArgs
strArgs = "cmd /c testing.bat"
oShell.Run strArgs, 0, false
的第二个参数oShell.Run
是intWindowStyle
表示程序窗口外观的值,零值表示隐藏窗口。
答案2
这只是 Shaji 答案的简化。您可以通过VB脚本(.vbs)脚本如下:
隐藏蝙蝠程序
CreateObject("Wscript.Shell").Run "your_batch_file.bat", 0, True
这将执行您的批处理文件,但不显示命令窗口。
答案3
为了扩展“使用 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 文件作为其第一个参数,将批处理文件作为第二个参数进行调用。
答案4
您可以更改快捷方式的属性以最小化运行。
要完全隐形地运行它,您还需要其他东西,例如 Windows 脚本。