隐藏执行另一个.EXE文件的.BAT文件的命令窗口

68

这是一个Windows批处理文件。

这是我的 .bat 文件。

@echo off
copy "C:\Remoting.config-Training" "C:\Remoting.config"

"C:\ThirdParty.exe"

这个方法很好用,但是.bat文件在“ThirdParty”应用程序运行的整个时间都会保持命令窗口打开状态。
我需要关闭命令窗口。

我想使用该应用程序的快捷方式,但必须先运行此复制命令(它实际上会更改要用于该应用程序的数据库和服务器)。

ThirdParty应用程序不允许用户更改DB源或应用程序服务器。

我们这样做是为了让用户从测试环境切换到生产环境。


1
刚刚发现这个,我认为它非常方便,可以在调用时隐藏控制台窗口: https://www.raymond.cc/blog/hidden-start-runs-batch-files-silently-without-flickering-console/ - Cadoiz
19个回答

2
为了使执行 .exe 文件的 .bat 文件的命令窗口尽快退出,请在要执行的文件前使用 @start。以下是一个示例:
(insert other code here)
@start executable.exe
(insert other code here)

您不必使用其他代码与@start executable.exe一起使用。


2

以不同的用户身份运行它。假设这是一个 Windows 电脑,在计划任务中创建一个用户帐户。使用该用户身份运行它。命令提示符只会显示给当前登录的用户。


2

I used this to start a cmd file from C#:

Process proc = new Process();
proc.StartInfo.WorkingDirectory = "myWorkingDirectory";
proc.StartInfo.FileName = "myFileName.cmd";
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
proc.Start();
proc.WaitForExit();

2

2
这个应用程序的信息不足,让我感到不太确定是否尝试它。需要常见问题解答或演示,最好提供一个不止包含一个选项卡截图的介绍。 - JeffO
Softpedia似乎对此有很好的评价:Bat To Exe转换器1.6.0 - SOFTPEDIA“100% CLEAN”奖项。这里是一个备用下载链接:http://www.softpedia.com/get/System/File-Management/Batch-To-Exe-Converter.shtml。 - Valentin Despa
我使用了它。它在我的一台电脑上运行良好,但是我将exe文件移动到另一台电脑上时,它们无法正常工作。 - Nathan F.

1
请使用这个,上面的不起作用。我已经在Windows Server 2003中进行了测试。
@echo off 
copy "C:\Remoting.config-Training" "C:\Remoting.config"
Start /I "" "C:\ThirdParty.exe"
exit

3
你收到了什么错误提示表明 'above' 不起作用?也许是因为你正在使用 Windows Server? - JeffO

0

对于那些可以接受不太规范的解决方案的人来说,这是一个简单的解决方法。按下win+tab键,将bat文件拖到新桌面上,然后忘记它。

我偶尔会制作一个很少使用的批处理文件,使用工具使窗口隐藏有点麻烦。对于我来说,这没有更复杂的必要。

enter image description here


0

以下VBScript将以隐藏模式启动cmd/bat文件。

strPath = Wscript.ScriptFullName
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile(strPath)
strFolder = objFSO.GetParentFolderName(objFile)

'MsgBox(strFolder)

Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run chr(34) & strFolder & "\a.bat" & Chr(34), 0
Set WshShell = Nothing

现在,只有应用程序窗口可见,而不是cmd.exe窗口。

0
在我的Windows 11家庭版上,将/min添加到启动命令中完全隐藏了窗口。
start /min C:\jdk1.8.0_221\bin\java -jar app.jar

0
把它放在你的cmd脚本的第一行:
%1 start "" mshta vbscript:createobject("wscript.shell").run("""%~s0"" ::",0)(window.close)&&exit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接