batch-file - 继续在后台运行批处理文件
问题描述
我有一个运行一个 java 应用程序的批处理文件。运行批处理后,它会打开 java 命令行。我必须在后台连续运行它,然后只有我的应用程序才能正常工作。那么,该怎么做呢?
解决方案
这里有几个选项
1) 使用hidder.bat - 它使用 IExpress 将文件包装在一个 exe 中,该 exe 将作为隐藏进程启动:
call hidder.bat myBat.bat myexe.exe
call myexe.exe
2) 使用startHidden.bat - 它需要管理员权限(又名“以管理员身份运行”),因为它使用 SCHTASKS 创建将启动 bat 的计划任务。它还将返回进程的PID。
call startHidden.bat myBat.bat
3) ShellRunJS.bat - 它使用WScript.Shell.Run()方法。
call ShellRunJS.bat "my.bat" -style 0 -wait yes
4) 使用win32process.bat - 它使用Win32_ProcessStartup wmi 类并返回进程的 PID。需要 bat 文件的完整路径:
call win32process.bat "%cd%\my.bat" -showWindow 0
5) 使用ProcessStartJS.bat - 它是一个自编译的 .net 应用程序并创建一个小的 exe 文件。还返回已启动 bat 的 PID,并且还需要完整路径:
call processStartJs.bat "%cd%\b1.bat" -style Hidden -directory "."
6) 作为替代方案,您还可以通过使用getCmdPid.bat和windowMode.bat获取其 PID 来更改已经运行的 bat 文件的状态:
call getCmdPid.bat
call windowMode -pid %errorlevel% -mode hidden
推荐阅读
- visual-studio-code - 在 VScode 选项卡中禁用问题徽章
- node.js - 指挥官的短帮助和长帮助
- html - 使用 DriveToWeb 托管在 G-Drive 上的站点在子文件夹中找不到索引文件
- python - 如何遍历压缩文件夹?
- npm - 如何阅读 npm“冲突对等依赖”错误消息?
- javascript - 从 LoopBack.io 中的模型字段中检索 ENUMS?
- android - 数据绑定恢复状态从其他视图重复值
- git - git子模块更新上游
- javascript - Puppeteer page.evaluate() – 将对象引用作为函数参数传递时出错
- elasticsearch - 生产和监控集群的 Kibana 配置敌人