ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

BAT开机自启动全攻略:登录触发、隐藏黑框与排错实战

BAT开机自启动全攻略:登录触发、隐藏黑框与排错实战 先聊个真实的场景你写了一个一键启动环境的 bat双击跑得挺好于是想让它开机登录后自己跑省得每天手动点。结果把 bat 往启动文件夹一丢有的机器管用有的机器纹丝不动有的弹个黑框一闪而过有的干脆被杀软干掉了。这篇文章就是把BAT 开机登录后自动启动这件事彻底捋清楚——从启动机制、三种主流实现方式到黑框隐藏、权限坑、排错链路再到几个可以直接抄的实战脚本一次性全部讲透。内容偏实战适合想把 Windows 自动化做扎实的开发者、运维和喜欢折腾的普通用户。1. 登录启动和系统启动先别搞混1.1 为什么开机登录后这个限定很重要先说一个最常见的认知误区很多人把开机启动理解成一个动作但 Windows 的启动其实是分阶段的。按下电源键之后BIOS/UEFI 自检然后引导 Windows 内核这时候系统以 System 用户身份运行各种系统服务陆续起来。这个阶段叫系统启动你的桌面还没出现用户还没登录。等你在登录界面输入密码回车之后系统才真正加载你的用户配置文件、桌面、资源管理器这个阶段才是登录。开机登录后自动启动这个需求本质上是想要在第二个阶段——用户会话建立之后再执行你的 bat。这个区别千万别小看。我见过有人把启动方式搞混把需要图形界面的程序塞进系统服务里结果程序起不来日志里报一堆交互式服务检测错误。反过来如果你想让批处理在登录前就运行权限和稳定性要求会完全不一样甚至可能导致脚本失败。1.2 登录触发的时机与常见误区登录后系统会做什么按顺序大致是用户配置文件加载、Shell 启动、启动文件夹里的项目执行、注册表 Run 键加载。这个顺序不是绝对的实际执行时可能并行也可能受各种策略影响但大体上能给你一个心理预期。很多人踩过这个坑把 bat 放进启动文件夹脚本里第一行就写net use Z: \\server\share结果开机后 Z 盘没映射上。为什么因为网络重定向和启动脚本的时序打架了系统还没等网络就绪就把脚本跑了。这种问题在后面延迟启动的章节我会专门讲。还有一种常见误区是以为开机自启动就必须写进服务或者计划任务的计算机启动时。实际上很多普通应用根本不需要那么高的权限。服务方式启动的程序如果是 GUI 程序在较新版本的 Windows 上默认是隔离会话用户根本看不见窗口程序自己也感知不到桌面环境反而给自己找麻烦。对于绝大多数开机登录后自动启动 bat的需求你只需要抓住两个关键点第一触发点必须在用户登录之后第二脚本要能拿到当前用户的会话环境包括环境变量、网络盘、个人目录等。把握住这两点接下来的所有方案都是围绕它们展开的。2. 三种主流自启动方式与选型对照2.1 启动文件夹最直观但不适合所有 bat把 bat 或快捷方式放进启动文件夹是小白最熟悉的方式操作成本最低。按Win R输入shell:startup回车一个文件夹就打开了把你的 bat 放进去就完事。这个文件夹对应的真实路径一般是C:\Users\你的用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup如果你想让所有用户登录都启动就得放到公共启动文件夹C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp但启动文件夹有个明显缺陷bat 直接放进去每次登录都会弹出一个黑色的命令提示符窗口哪怕你的脚本运行 1 秒就结束窗口也会闪一下体验很差。而且如果脚本执行过程中卡住了比如等待一个网络资源这个黑框会一直挂在桌面上很碍眼。2.2 注册表 Run 键安静可靠纯命令脚本首选注册表 Run 键是另一种非常经典的方式它不会像启动文件夹那样显眼地列在桌面上但同样会在登录时执行。有两个常用位置当前用户HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run所有用户HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run用注册表方式启动 bat同样会闪黑框。解决方式后面会讲但这本身不影响它作为触发机制的可靠性。注册表方式的好处是对普通 bat 来说它比启动文件夹更隐蔽不容易被用户随手删掉。但要注意HKLM 的 Run 键需要管理员权限才能写而且杀毒软件对 HKLM 的写入监控更严格。2.3 任务计划程序最强大延迟、条件、权限都可控如果你受够了启动文件夹的随意和注册表的隐蔽性任务计划程序是真正适合生产环境的方案。它能够精确控制触发条件登录时、计算机启动时、特定时间、延迟时间等待几秒再执行、执行身份SYSTEM / 管理员 / 当前用户、失败重试策略还能设置仅在计算机空闲时才执行等条件。唯一的缺点是配置过程比前两种繁琐尤其是用命令行schtasks创建时参数比较多。但一旦你掌握了它几乎能覆盖所有自动启动需求而且出问题后排查起来非常清晰。这三种方式各有利弊我直接给一个选型表格方便参考对比维度启动文件夹注册表 Run 键任务计划程序配置复杂度最低低较高登录触发支持支持支持隐藏黑框需额外处理需额外处理原生支持延迟启动不支持不支持支持管理员权限需额外处理需额外处理原生支持清理难度手动删手动删注册表GUI/命令删除脚本失败排查不方便不方便有历史记录用一句话总结我的建议临时自用、自己一个人折腾用启动文件夹想跑纯命令型脚本且不想装任何工具用注册表 Run 键脚本需要网络、需要延迟、需要管理员权限或者在公司多人电脑上部署直接上任务计划程序别犹豫。3. 实操把 BAT 稳稳塞进启动流程3.1 启动文件夹方式的具体操作打开启动文件夹最简单的方法就是Win R输入shell:startup回车。然后把你的 bat 文件复制进去。但这里我要提醒一个细节如果你是直接把 bat 原样放进去它运行时会显示黑框而且如果脚本里用到了相对路径比如读取当前目录下的config.ini它可能会失效。因为启动文件夹的工作目录不是你的 bat 所在目录而是系统目录比如C:\Windows\System32或者用户目录具体取决于触发方式。举个例子你写了一个清理垃圾的 bat脚本内容假设是echo off del /q /s %TEMP%\*.*这段脚本不依赖当前目录自然没问题。但如果脚本里有for /f %%i in (list.txt) do ...而list.txt就放在 bat 旁边那直接放启动文件夹里运行大概率找不到文件。解决办法是在 bat 开头用cd /d %~dp0切到脚本自身所在的目录echo off cd /d %~dp0 rem 这样后续相对路径就都正确了3.2 注册表 Run 键的具体操作注册表方式有两种操作方法一是打开regedit手动添加字符串值二是在 bat 里用reg add命令自己写自己。手动加很简单Win R输入regedit定位到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run右键新建字符串值名称随便起数据填 bat 的完整路径比如C:\Scripts\auto_run.bat。注意如果路径有空格一定要用引号包起来不然启动时会被截断。用命令行的方式更符合批处理的调性。比如说你想把当前 bat 自己写入 Run 键可以在脚本里加这么一段echo off reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v MyScript /t REG_SZ /d \%~f0\ /f这里%~f0是当前脚本的完整路径带上引号是为了防空格。执行一次后这个脚本以后每次登录都会自动启动。想去掉的话reg delete HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v MyScript /f注册表方式的优势是触发非常稳定没那么多花哨的调度逻辑开机登录时基本都会执行。但它依然解决不了黑框问题所以我的建议是如果脚本本身是静默型代码不 echo、不 pause你可以用注册表方式如果脚本会输出信息就要配合下面的隐身方案一起用。3.3 任务计划程序方式的具体操作在图形界面创建任务计划很简单Win S搜索任务计划程序并打开右侧点创建任务在常规选项卡里勾选使用最高权限运行在触发器选项卡里新建触发器选登录时在操作选项卡里新建操作程序或脚本选择你的 bat 路径起始于目录填脚本所在文件夹。这个过程不啰嗦我就不一步步配图了。我想重点讲的是命令行创建方式因为你可以把整个创建过程也写成一个 bat 脚本这在多台电脑上批量部署时效率极高。用schtasks创建一个登录时触发的任务schtasks /Create /TN MyStartupTask /TR C:\Scripts\my_script.bat /SC ONLOGON /RL LIMITED /F各参数含义/SC ONLOGON登录时触发/TN任务名称最好用英文中文有时候在命令行模式下会乱码/TR要运行的程序或脚本路径/RL LIMITED以普通权限运行如果要管理员权限就改成/RL HIGHEST/F强制覆盖同名任务如果你想让任务延迟 10 秒运行加上/DELAY 0000:10格式是 HH:mm:ssschtasks /Create /TN MyStartupTask /TR C:\Scripts\my_script.bat /SC ONLOGON /RL LIMITED /DELAY 0000:10 /F这种延迟在很多场景下特别有用比如开机后网络还没就绪等 10 秒再跑挂载网络盘的脚本成功率会高很多。删除任务、查看任务状态schtasks /Delete /TN MyStartupTask /F schtasks /Query /TN MyStartupTask /V要提醒的是如果任务计划里的脚本需要管理员权限而当前登录的用户不是管理员那么触发时可能会弹出 UAC 提权对话框。要想真正免打扰运行需要在任务计划程序里把任务配置为不管用户是否登录都要运行并且使用存储在计算机上的密码来执行——这种方式适用于系统账户或配置了密码的账户配置过程中要点几下安全策略的确认适合在完全可控的机器上使用。4. 让 BAT 隐身运行告别每日黑框4.1 用 VBS 包装脚本实现零窗口这是我最推荐的方式代码简单、兼容性极强Windows 自带wscript.exe和cscript.exe不需要额外安装运行库。核心原理是不直接运行 bat而是用一个 VBS 脚本以窗口隐藏模式去调用 bat。VBS 里只用一行关键代码CreateObject(WScript.Shell).Run cmd /c C:\Scripts\my_script.bat, 0, False解释一下cmd /c表示执行完就关闭命令窗口0表示隐藏窗口其他值1 正常显示窗口2 最小化3 最大化False表示不等待脚本执行完VBS 自己先退出你把这段代码保存为.vbs文件然后让这个 VBS 去开机启动而不是让 bat 直接开机启动。由于 VBS 本身不产生控制台窗口而它启动的 cmd 又以隐藏模式运行所以整个链路下来屏幕上干干净净一个黑框都不会出现。如果你不想额外创建一个 VBS 文件也可以把 winrar、7-zip 之类第三方工具的静默模式拿来用但那是另一套工具链对多数场景没必要。VBS 方案已经是最稳的。4.2 快捷方式最小化也能减少打扰如果不想引入 VBS 这种额外文件还有一种取巧的办法创建一个指向 bat 的快捷方式然后把这个快捷方式放进启动文件夹再把快捷方式的运行方式设为最小化。具体操作右键 bat 文件创建快捷方式右键快捷方式选属性在快捷方式选项卡里找到运行方式下拉选择最小化确定。然后把快捷方式复制到启动文件夹。效果是执行时任务栏上会弹一下图标但窗口不会全屏出现在桌面上比裸 bat 干净不少。缺点是启动瞬间任务栏会有一个窗口图标闪烁追求极致干净还是得用 VBS。4.3 任务计划程序自带的隐藏设置任务计划程序创建任务时在创建任务窗口的常规选项卡里有一个隐藏复选框勾上之后任务不会显示在任务计划程序列表中但该选项只影响任务是否在 UI 里显示并不影响 bat 运行时的窗口显示。真正的无窗口设置藏在操作里当你在添加操作时程序或脚本填wscript.exe然后添加参数里写C:\Path\script.vbs也就是让任务计划程序调用 VBS 而不是直接调用 bat。这样既戴上了任务计划程序的帽子延迟、权限、触发条件又享受了 VBS 隐藏窗口的好处。如果你不想用 VBS还有一个偏门但有效的隐藏方式——直接用 PowerShell 包装 batpowershell -WindowStyle Hidden -Command Start-Process -FilePath C:\Scripts\my_script.bat -WindowStyle Hidden这种方式可以做到不开任何可见窗口但唯一的问题是 PowerShell 启动本身也有约一秒钟的加载延迟且部分精简版系统可能禁用 PowerShell所以我的首选还是 VBS。4.4 BAT 内部自隐藏的适用范围网上流传一段bat 自己隐藏自己的代码一般是借助 mshta 或者 PowerShell 重新启动自身echo off if not %1hidden ( mshta vbscript:createobject(wscript.shell).run(%~f0 hidden,0)(window.close) exit ) rem 实际业务代码从这里开始原理是第一次以可见窗口运行时检测到参数不是hidden就调用 mshta微软 HTML 应用程序宿主启动一个隐藏进程重新执行这个 bat并带上hidden参数然后自身退出。第二次进入时参数已经是hidden就跳过隐藏逻辑直接执行业务代码。这种方式有个好处不需要额外创建 VBS 文件一个 bat 就搞定。不过杀毒软件对 mshta 调用有时会比较敏感而且在不同 Windows 版本上表现略有差异。如果你追求省事、不想多文件部署可以试试如果你需要稳定可靠还是 VBS 方案更让我放心。5. 进阶细节日志、延迟、权限与路径5.1 给自动启动的 BAT 加上日志开机自启动脚本有个日常痛点它是在你不在场的时候跑的出了问题你看不见。所以写日志不是可选项而是必要操作。最简单的日志就是在 bat 输出时重定向到文件echo off cd /d %~dp0 echo [%date% %time%] 脚本开始执行 run.log rem 业务指令 echo [%date% %time%] 脚本执行完毕 run.log但这里有个问题如果脚本中途报错普通的重定向只能捕获到命令的输出不一定能捕获到错误级别。更实用的是把%errorlevel%一起记录下来ping -n 2 127.0.0.1 nul if %errorlevel% equ 0 ( echo [%date% %time%] ping 成功 run.log ) else ( echo [%date% %time%] ping 失败错误码 %errorlevel% run.log )用重定向的方式把每次运行的完整输出追加到日志里是最朴素但最可靠的做法。第一次排查问题时你会发现日志里那几行字比什么都管用。5.2 延迟启动等待网络就绪的两种姿势之前提过有些脚本需要网络就绪后才能成功执行。最简单的处理器就是延迟执行用任务计划程序的/DELAY参数或者在 bat 内部加timeoutecho off rem 等待 10 秒给网络适配器一点时间 timeout /t 10 /nobreak nul但timeout有个坑在某些被组策略锁定的系统上会提示重定向输入不受支持然后直接跳过。更保险的写法是用 ping 来模拟延时ping -n 11 127.0.0.1 nul-n 11表示发送 11 个 ping 包每个间隔 1 秒所以大约延时 10 秒。这个技巧在精简版系统上依然有效因为它不依赖任何外部组件。5.3 管理员权限与 UAC 拦截问题很多 bat 需要管理员权限运行比如修改系统服务、写 HKLM 注册表但开机启动时弹出 UAC 很烦人而且会导致脚本阻塞等待。方案一把权限要求写进 bat 本身让它在没有管理员权限时自动重新以管理员身份运行。经典代码是这样的echo off net session nul 21 if %errorlevel% neq 0 ( powershell -Command Start-Process %~f0 -Verb RunAs exit /b ) rem 下面就是需要管理员权限的代码这段逻辑是net session只有管理员才能执行成功如果失败错误码非零就用 PowerShell 的Start-Process -Verb RunAs触发 UAC 提权并重新运行自己然后退出当前非管理员上下文。方案二在任务计划程序里勾选使用最高权限运行。这种情况下如果触发者是普通用户通常会有 UAC 弹窗如果任务是系统账户配置且选了不管用户是否登录都要运行则可以完全绕过 UAC但配置复杂度更高。我的建议是个人电脑上优先用带提权重跑的方案一因为逻辑透明、不会因为任务计划配置失误导致一直失败公司域环境统一部署优先用任务计划程序加最高权限因为安全策略更规范。5.4 路径空格与工作目录问题bat 自动启动时工作目录具有不确定性。最稳妥的做法是脚本开头固定执行cd /d %~dp0%~dp0展开的是脚本自身所在目录包含盘符和末尾反斜杠。这样不管从哪里启动脚本都能正确找到同目录下的资源文件。如果一个路径带空格调用时必须用双引号包住。典型错误是start C:\My Tools\run.bat rem 错误空格被截断正确的是start C:\My Tools\run.bat注意start命令的第一个引号是窗口标题即使不需要标题也要写一个空的否则如果程序路径本身带了引号系统会把它当成标题。6. 踩坑记录不生效、闪退、被杀软拦6.1 放进去没反应排查链路是什么遇到明明放进启动文件夹了但开机没跑我一般按下面的顺序排查先手动双击 bat确认脚本本身没有语法错误、没有卡在交互输入上。很多 bat 里写了pause一旦没人按键脚本就永远挂在那边开机时也不会干后续的事。确认启动文件夹路径没有搞错。shell:startup打开的是当前用户的启动文件夹如果你放到了shell:common startup所有用户只有所有用户共享时才会被加载。反之亦然。检查杀毒软件隔离区。Windows Defender 对开机启动项、来自网络的脚本都很警惕有时候直接静默拦截你根本看不到报错。尝试用任务计划程序手动运行一次任务看任务的上次运行结果返回什么代码。如果是0x2说明文件路径错误如果是0xC0000142这类壳异常说明程序本身启动时就崩了。如果依然没有头绪在脚本里第一行加echo test C:\debug.txt重新触发一次看有没有生成这个文件。这一步能快速定位脚本到底有没有被执行。6.2 BAT 一闪而过怎么抓到执行现场bat 双击直接闪退是新手最常遇到的问题。原因通常是脚本里有错误命令cmd 执行完就直接退出窗口你根本来不及看报错。最简单的方法是在脚本最后一行加pause这样执行完会停留在窗口里等按任意键才关闭你就能看到前面的输出。但如果脚本是开机自动触发的pause会导致脚本阻塞反而坏事。所以更实用的做法是调试阶段用pause加在最后确认没问题后删掉正式部署时用日志重定向代替用户交互。如果闪退发生在 bat 内部的某个第三方工具调用上比如调用findstr、for /f解析结果失败往往是因为文件路径或编码问题。Windows 自带工具一般没问题但注意 bat 文件如果是 UTF-8 编码某些中文路径或中文 echo 内容可能显示为乱码。建议统一把 bat 另存为 ANSIGBK编码尤其涉及中文路径时更安全。6.3 杀毒软件与系统策略的拦截Windows Defender 对启动文件夹新增可执行脚本这类行为会有实时监控。有时候你明明拷进去了Defender 没过几秒就把 bat 删了或者标记为允许但不运行。处理方式不是说让你关掉 Defender千万不要为了跑脚本关杀毒而是可以在 Defender 的排除项里添加 bat 所在目录给 bat 加一个数字签名如果有企业证书把启动方式改为任务计划程序因为计划任务的信誉度比启动文件夹略高也更容易在 Windows 安全中心里配置白名单另外企业域环境里的软件限制策略会拦截未经签名的脚本这种环境你就老老实实走 IT 流程申请白名单不要试图绕过系统安全策略。6.4 用户级启动与管理员级启动的权限差异用启动文件夹启动的 bat运行身份是当前登录用户权限只有普通用户级别。如果你写的脚本需要修改 HKLM 注册表或重启服务就会失败。用任务计划程序时如果选择了使用最高权限运行脚本会以管理员令牌运行。但要注意即使是最高权限任务计划在登录触发的方式下进程还是跑在用户的会话里所以你脚本里启动的 GUI 程序还是能显示出来的。恰恰是能不能看到 GUI这一点很多人处理反了他们想让 GUI 程序开机自动打开却用了 SYSTEM 账户跑任务结果程序在会话 0 里启动了界面上根本看不到。碰到这种问题要把任务计划程序的运行任务改为仅在用户登录时运行而不是不管用户是否登录都要运行。7. 实战案例登录后自动拉起开发环境与清理任务7.1 组合拳一次启动 MySQL、Redis、Elasticsearch很多开发机每天开机都要手动启动好几个中间件。把下面这段 bat 放到开机启动项里配合 VBS 隐藏窗口每天开机就能自动把环境拉起来。echo off cd /d %~dp0 set LOGauto_start.log echo [%date% %time%] 开始启动开发环境 %LOG% rem 启动 MySQL服务方式就不额外启进程了 sc start MySQL %LOG% 21 rem 启动 Redis如果注册成了服务 sc start Redis %LOG% 21 rem 启动 Elasticsearch需要等 Java 环境所以延迟一下 if exist D:\dev\elasticsearch\bin\elasticsearch.bat ( start /b D:\dev\elasticsearch\bin\elasticsearch.bat %LOG% 21 ) rem 打开常用工具比如浏览器标签组、开发工具 start D:\dev\jetbrains\idea64.exe start D:\dev\sql\Navicat\Navicat.exe echo [%date% %time%] 开发环境启动完成 %LOG%有几个关键点要说明sc start只对已注册为服务的程序有效如果服务已经启动它返回的提示你可以在日志里看到不影响后续命令。Elasticsearch 的start /b表示在后台启动不占用当前 cmd 窗口。开发工具的路径里如果有空格start 后面必须用引号把完整路径包起来。按照这个思路你可以把数据库、缓存、消息队列、开发 IDE 都拉起来每天开机到桌面前环境已经全部就绪。7.2 一键清理系统垃圾的 BAT 计划任务化网上流传很广的清垃圾 bat很多但直接放进启动项是个错误决定垃圾清理不需要每天开机跑一遍更应该在需要时手动运行。不过如果你确实想让它在固定时间自动跑任务计划程序 延迟触发是更好的选择。以下是一个安全的清理脚本示例只动当前用户的临时文件不碰任何系统关键目录echo off cd /d %~dp0 rem 清理当前用户临时目录 if exist %TEMP% ( del /q /s %TEMP%\*.* 2nul ) rem 清理 Windows 预读取目录需要管理员权限时单独处理 rem 这里直接注释掉避免权限问题引起脚本中断 rem if exist C:\Windows\Prefetch ( rem del /q /s C:\Windows\Prefetch\*.* 2nul rem ) rem 清理浏览器缓存目录以 Chrome 为例 if exist %LOCALAPPDATA%\Google\Chrome\User Data\Default\Cache ( del /q /s %LOCALAPPDATA%\Google\Chrome\User Data\Default\Cache\*.* 2nul ) echo [%date% %time%] 清理完成 clean.log真正要计划任务化时建议时间选在每周某天的深夜而不是每天开机登录时。一方面清理操作会占用磁盘 IO可能拖慢开机速度另一方面深夜跑和用户无感知清理不干净的临时文件也不会影响正在运行的程序。7.3 进阶玩法把 BAT 转成 EXE管理更可控有人会问bat 开机启动容易被杀软误报、双击就闪退、不好设置图标能不能直接转成 exe答案是可以用 bat to exe 类工具做转换。市面上常见的有 Bat To Exe Converter、Quick Batch File Compiler、Advanced Bat To Exe Converter 等。大体上就是把 bat 和附带的资源打包进一个 exe有些工具还支持设置程序图标、版本信息、运行时是否隐藏窗口、是否以管理员权限运行。转成 exe 后有几个好处可以设置隐藏窗口属性省去 VBS 的包装层图标自定义看起来更像正式软件设置的权限级别管理员/普通用户在 UAC 清单里提前声明提权时 UAC 弹窗描述更规范但要注意转换成 exe 并不能真正防止别人查看脚本内容有些工具声称加密其实只是把 bat 内容压缩存储遇到有心人依然可能还原。如果你担心脚本里的密码、密钥泄露最安全的做法是不要写在明文字符串里而是让脚本从环境变量或外部加密配置里读取。我个人经验是批量部署给同事的辅助工具转成 exe 更友好自己机器上的自启动脚本保持 bat 原样最好排查问题。写在最后有一次我在一台 Windows Server 上配置计划任务明明很简单的一个 ONLOGON 触发器怎么调都不生效。查了半天才发现这台机器的登录方式用的是自动登录AutoAdminLogon而任务计划在检测到自动登录时有时会踩到用户是否已交互登录的判定上导致登录触发器不按预期触发。后来我把触发方式从登录时改成计算机启动时再配合延迟执行问题才解决。所以我的体会是Windows 的开机自启动没有银弹每种方式都有自己的脾气。启动文件夹最简单但黑框和路径问题要额外处理注册表最安静但隐藏窗口和权限要自己想办法任务计划程序最专业但配置细节多需要你对登录机制有足够的理解。把这几种方式的底层逻辑和坑都摸透了遇到开机没跑闪退被杀软删这类问题才能迅速定位到症结。最后分享一个小技巧无论用哪种方式都别忘了给脚本加上日志输出。开机启动的脚本是无人值守的它出错时不会有人帮你按 CtrlC日志就是你唯一的目击证人。有了日志再难的排错都不怕。
返回列表