批处理文件进程使额外的命令提示符保持打开状态

批处理文件进程使额外的命令提示符保持打开状态

我有这个批处理文件,它会在启动文件夹中创建一个批处理文件,用于打开网站的特定 URL。我的问题是,每次运行它时,它都会打开一个空的命令提示符。

批处理脚本运行良好,它使用 Web 浏览器打开网站 URL,但它只会打开一个额外的 CMD 窗口,而我不希望这种情况发生。注意:我不是在问如何在后台运行 CMD 窗口。

代码如下:

@echo off

cd C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

echo @echo off > startup.bat

echo start (link) >> startup.bat

start startup.bat

有人能帮忙指出我可以做哪些改变来解决这个问题吗?

答案1

你可以使用称呼并添加/MIN开关开始命令使其更加隐蔽,并确保运行时 CMD 窗口消失按照上面示例中的逻辑设置方式

我做了一些快速调整并添加了这个逻辑,以便您获得我使用的内容的确切示例,并确认它可以工作,正如您解释的那样,您需要它工作。

示例脚本

@echo off

CD /D C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

echo @echo off > startup.bat
echo START /MIN "" "https://google.com">> startup.bat
echo EXIT /B>> startup.bat

CALL startup.bat
EXIT /B

更多资源

答案2

请查看以下链接:

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

如果链接无法访问,则一个答案指出要创建包含以下内容的 vbs 脚本:

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

其中“your_batch_file.bat”是您的批处理文件的名称。

将以上内容保存为 Visual Basic 脚本,例如:example.vbs 并运行它。

答案3

原因及解决方法如下:

默认情况下,START 将运行相当于 CMD /K 的命令,它会打开第二个命令窗口并使其保持打开状态。在大多数情况下,您希望批处理脚本完成,然后关闭其 CMD 控制台以恢复初始批处理脚本。这可以通过明确运行 CMD /C ... 来完成

Echo Starting
START /wait "demo" CMD /c demoscript.cmd
Echo Done

来源

相关内容