Jak*_*ake 65 windows batch command-line
我安装了一个名为 Redcar 的 ruby gem,它是从命令行启动的。当它运行时,它会窃取 shell 直到它终止,所以我必须创建一个新的 shell 窗口来继续执行命令行工作。我使用的 shell 是来自 MySysGit 的 GITbash shell。
我发现了一个 Redcar.bat 文件,我想它是为了将 Redcar 作为快捷方式启动,但我不希望在启动 BAT 文件时打开额外的命令提示符窗口。
如何在没有看到提示的情况下只运行 BAT?
afr*_*ier 39
你不能——用内置的命令提示符执行批处理文件会保持一个窗口打开,直到批处理文件退出。
您可以采取措施确保批处理文件尽快退出。如果可能,请修改批处理文件以使用该start
命令运行任何程序。默认情况下,start
不等待程序退出就立即返回,因此批处理文件将继续运行,并且可能会立即退出。再加上修改您的快捷方式以运行最小化的批处理文件,您只会看到任务栏闪烁,甚至不会在屏幕上看到窗口。
对此的一个警告是,如果您正在运行一个控制台模式程序,许多脚本解释器都是这样,批处理文件将等待程序退出,而 usingstart
将产生一个新的控制台窗口。在这种情况下,您需要做的是运行基于 Windows 的解释器版本,而不是基于控制台的版本——没有start
必要。对于 Perl,您将运行wperl.exe
而不是perl.exe
. 对于 Python,它pythonw.exe
不是python.exe
. 我下载的旧的 win32 Ruby 发行版有rubyw.exe
,它应该做同样的事情。
最后一种可能性是使用第 3 方工具运行带有隐藏窗口的命令提示符。我听说过这样的东西,但从来没有用过它们,所以我不知道有什么特别要指出的。
ind*_*ago 25
我认为这是在不打开 DOS 窗口的情况下运行批处理文件的最简单和最短的解决方案,当您想要安排一组命令定期运行时,它会非常分散注意力,因此 DOS 窗口不断弹出,这是您的解决方案. 使用 VB 脚本调用批处理文件...
Set WshShell = CreateObject("WScript.Shell" )
WshShell.Run chr(34) & "C:\Batch Files\ mycommands.bat" & Chr(34), 0
Set WshShell = Nothing
Run Code Online (Sandbox Code Playgroud)
将上面的行复制到编辑器并使用 .VBS 扩展名保存文件。相应地编辑 .BAT 文件名和路径。然后只需运行 .vbs 文件,奇迹就会发生!
您可以在 Task Scheduler 上创建一个任务,然后在Action
应该Start a program
选择.vbs
您创建的这个脚本。根据您的要求,您可以填写和保存其他属性。
vha*_*nla 10
您可以在命令提示符下使用 START /MIN CMD.EXE /C mybatchfile.bat 运行另一个批处理文件。
从外部,它会显示 cmd 控制台窗口,但为了避免这种情况,您可以创建一个快捷方式文件,其属性已修改为开始最小化。
尝试一下:
START /B batchfile
Run Code Online (Sandbox Code Playgroud)
巴洛普添加的注释
开始 /?/B 说
B Start application without creating a new window. The
application has ^C handling ignored. Unless the application
enables ^C processing, ^Break is the only way to interrupt
the application.
Run Code Online (Sandbox Code Playgroud)
小智 5
继续丹尼斯威廉姆森的回答,您可以编辑批处理文件并附加(前置)START /B
到您正在执行的命令。
例如,我有一个运行 putty 的批处理文件并且有同样的问题(额外的 CMD),所以我是这样写的:
@ECHO 关闭 开始 /B putty.exe -load name_of_my_config_file
它工作得很好。
为此,请使用Bat To Exe Converter程序将批处理文件转换为可执行文件。
转换为可执行文件时,您会在可见性部分找到将文件作为隐形应用程序运行的选项。因此,当您运行它时,它将在没有窗口的情况下运行。
归档时间: |
|
查看次数: |
311577 次 |
最近记录: |