使用“cmd /c”但隐藏控制台窗口

kno*_*010 8 cmd windows-console

单击时,我有一个运行此命令的快捷方式:cmd /c "full path to my batch file"。当我使用它时,它会做它应该做的事情,但在此过程中会弹出丑陋的控制台窗口。有没有办法让这个命令启动一个隐藏的或至少最小化的窗口?

小智 17

powershell "start <path of batch file> -Args \"<batch file args>\" -WindowStyle Hidden"
Run Code Online (Sandbox Code Playgroud)

可以将其放置在一个单独的批处理文件中,该批处理文件在调用时将立即终止,同时批处理文件在后台执行。

如果您的批处理文件没有参数,则可以排除从“Args”到“\””。

可以在结束引号之前添加“-v runAs”以以管理员身份运行批处理文件。


Ste*_*han 10

使用start带有 switch的命令在最小化窗口中/min启动cmd

start /min cmd /c "full path to my batch file"
Run Code Online (Sandbox Code Playgroud)

  • 如果在注册表中对上下文菜单项使用这种方式,该项目将停止正常工作 (3认同)
  • 为什么投反对票?它正确回答了问题(“...或最小化”) (2认同)

Shi*_*Sao 8

我找到了这个解决方案:

创建launch.vbs文件并添加

Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run chr(34) & "C:\Batch Files\syncfiles.bat" & Chr(34), 0
Set WshShell = Nothing
Run Code Online (Sandbox Code Playgroud)

将“C:\Batch Files\syncfiles.bat”替换为您的绝对或相对路径文件名。

来源:https ://www.winhelponline.com/blog/run-bat-files-invisible-without-displaying-command-prompt/

来源 MSDN:https://msdn.microsoft.com/en-us/library/d5fk67ky (VS.85).aspx


iBu*_*Bug 0

创建一个 VBScript 文件作为 shell 来启动它。

' Launcher.vbs
If WScript.Arguments.Count = 0 Then
  WScript.Quit 1
End If

Dim WSH
Set WSH = CreateObject("WScript.Shell")
WSH.Run "cmd /c " & WScript.Arguments(0), 0, False
Run Code Online (Sandbox Code Playgroud)

您可能希望将其作为此处文档嵌入到批处理文件中。请参阅此处有关 Windows 批处理的文档?

  • 一般来说,您需要在参数周围加上引号,例如`WSH.Run "cmd /c """ &amp; WScript.Arguments(0) &amp; """", 0, False`。否则,当命令以可执行文件的带引号的路径开头并且命令行中至少还有一个带引号的参数时,CMD 在删除第一个和最后一个引号时会弄乱引号。 (3认同)