一般来说如果我们想让一个 Windows 命令行程序在后台运行,我们需要把这个程序写成一个 Windows 服务程序。然后使用 sc 命令或者把它安装成 Windows 服务,它才能在后台运行。
Windows 没有像 Linux 那样直接在命令最后加一个 & 字符就可以让命令在后台运行了。比如下面的命令可以让打包操作在后台运行,即使关掉窗口也不会关掉进程。
tar -czf home.tar.gz . &
在 Windows 上要达到类似的效果需要一些技巧。下面的命令可以让你的 Windows 命令行程序在后台运行,即使关掉了命令行窗口,你在任务管理器里还是能看到它。
要注意的是我们必须做一个批处理文件让这两行程序一起执行,一个一个在命令行里执行这两个命令是没有效果的。
@ECHO OFF %1 start mshta vbscript:createobject("wscript.shell").run("""%~0""::",0)(window.close)&&exit start /b your_command.exe
我们需要做的就是用自己的程序替换掉 your_command.exe
要停止已经开始运行的后台进程可以使用下面的脚本:
@ECHO OFF taskkill /im your_command.exe /f ping -n 2 127.1 > nul
另外注册成服务的方式如下:(但被调用的程序需要支持服务运行,否则会报1053错误)
1、以管理员身份运行CMD命令提示符;
2、输入以下命令为Test.bat程序注册服务,服务名为ServiceTest,启动方式为自动;
sc create ServiceTest binPath=D:\xxx\Test.bat start=auto
3、要删除创建的服务也很简单,使用以下命令即可:
sc delete ServiceTest
原文及参考链接:
[如何让 Windows 命令行程序像 Linux & 命令那样在后台运行] https://blog.csdn.net/surfirst/article/details/113123446
[windows软件或程序服务开机自启动的四种方式] https://blog.csdn.net/qq_39715000/article/details/125780841
[windows bat脚本注册成服务] https://blog.csdn.net/x781437692/article/details/121545165
相关文章
转:Linux站点备份打包脚本2020-04-05
Python3串口16进制读写通讯2017-10-13
域账号弱口令批量检查-PowerShell2016-09-22
Bat选择性拷贝文件夹里文件2016-09-13
Bat脚本转换成EXE可执行文件2016-08-29
Windows目标服务器端口监测脚本微信通知2016-08-25
Windows批量建文件夹和寻找目录下空文件夹2016-08-13
Ubuntu14.04的GURB2启动项修复2015-07-21
bat脚本设置开机启动并去除黑框2015-04-25
windows搜索文件内容并拷贝文件到指定目录2015-04-12