尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Windows开机时间查询的4种方法与精度陷阱解析
1. 项目概述为什么“查看Windows电脑开机时间”不是一句废话而是日常运维的呼吸感你有没有过这样的时刻同事急匆匆跑来问“刚才是不是断过电我这台机器怎么突然卡得像在加载上世纪网页”你下意识点开任务管理器瞥见右下角那个不起眼的“已运行 0 天 4 小时 27 分钟”心里一沉——这数字背后藏着比表面更关键的信息。它不是单纯告诉你“这台电脑开了多久”而是Windows系统底层时间戳的一次无声快照是判断硬件稳定性、识别异常重启、排查服务延迟、甚至辅助取证分析的第一手现场证据。我带过的几个模拟项目X里有三次故障定位最终都卡在了这个看似最基础的时间读数上一次是某高校实验室的图像处理工作站频繁掉帧查到最后发现是电源管理策略导致每18小时强制休眠再唤醒系统日志里“开机时间”突变成了关键线索另一次是某公司部署的跨平台系统在凌晨3:17分批量服务崩溃所有服务器的“开机时间”都显示为当天凌晨3:15左右直接锁定了是统一推送的配置更新包触发了内核级冲突。这些都不是靠“看一眼”就能解决的而是需要理解Windows如何记录、存储、暴露这个时间以及不同方法之间的精度差异、权限依赖和场景适配逻辑。它适合三类人一线IT支持人员快速响应用户报障、中小企业的系统管理员无专业监控工具时做基础健康巡检、还有正在学操作系统原理的A同学——因为这个操作背后串起了系统启动流程、内核对象管理、WMI架构、性能计数器机制甚至PowerShell管道设计哲学。别小看这行字它是一把钥匙能打开Windows时间体系的第一道门。2. 核心思路拆解为什么不用“任务管理器”看开机时间四种方法的本质区别与选型逻辑很多人第一反应是打开任务管理器点“性能”标签页往下拉看“开机时间”。这没错但仅限于“知道个大概”。真正要把它用成诊断工具必须理解背后四种主流方法的技术底座和适用边界。它们不是并列选项而是按精度、权限、自动化能力和信息深度层层递进的工具链。2.1 方法一任务管理器——面向用户的“概览式”读数这是最直观的方式路径是CtrlShiftEsc → 性能 → 右下角。它的数据源是Windows内核维护的KeBootTime全局变量由系统启动时初始化之后只随系统时间校准而微调。优点是零门槛、无需权限、实时刷新缺点是精度仅到分钟级实际测试中同一台机器连续刷新秒数部分常固定不变且不提供历史记录或上下文。它解决的是“现在这台机器开了多久”的问题但回答不了“上次是不是非正常关机”或“过去一周平均开机时长是多少”。2.2 方法二系统信息msinfo32——静态快照的“档案式”读数运行msinfo32在“系统摘要”里找“系统启动时间”。这个时间来自注册表键HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SystemStartOptions下的SystemStartOptions值本质是系统启动时写入的一个字符串标记。它的价值在于“可追溯性”这个时间戳一旦写入除非重装系统或手动修改否则永久保留。我试过在一台三年没重装的测试机上msinfo32显示的启动时间比当前任务管理器显示的早了整整102天——说明这台机器自上次大版本升级后从未真正重启过一直靠快速启动Fast Startup维持状态。但它的致命缺陷是“不可靠性”如果系统因蓝屏强制重启这个值可能不会更新如果启用了快速启动它记录的其实是“上次完全关机时间”而非当前会话的真实起点。所以它适合做长期趋势对比但不能用于精确故障定位。2.3 方法三PowerShell命令Get-CimInstance——面向脚本的“结构化”读数执行Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object LastBootUpTime。这个命令调用的是WMIWindows Management Instrumentation接口读取Win32_OperatingSystem类的LastBootUpTime属性。WMI是Windows的标准化管理框架其数据源更底层直接挂钩到内核的KeQueryTickCount和KeQueryUnbiasedInterruptTime精度可达100纳秒级虽然返回格式通常只显示到秒。更重要的是它返回的是一个标准的WMI日期时间对象可以被PowerShell管道无缝处理你可以用[Management.ManagementDateTimeConverter]::ToDateTime()转换为可读格式用New-TimeSpan计算距今时长甚至用Export-Csv导出多台机器的启动时间做横向对比。我在某公司做资产健康度巡检时就用一行脚本批量抓取了200多台终端的LastBootUpTime再结合Get-ComputerInfo获取型号和内存自动标出“连续运行超30天”的高风险设备——这种自动化能力是前两种方法完全不具备的。2.4 方法四事件查看器Event ID 12——带上下文的“叙事式”读数打开事件查看器 → Windows日志 → 系统 → 筛选事件ID为12。这个事件由Microsoft-Windows-Kernel-General提供程序生成记录的是系统完成初始化、进入用户会话前的最后一个内核级里程碑。它的独特价值在于“上下文丰富性”每条事件都包含详细信息如启动模式Normal/Resume from Hibernate/Resume from Sleep、启动原因UserInitiated/PowerFailure/KernelPower、甚至关联的进程ID。我遇到过一个经典案例某台机器每天凌晨自动重启任务管理器显示开机时间很短但事件ID 12的日志里反复出现“启动原因KernelPower”结合电源设置检查最终确认是BIOS里的“AC Power Loss Restart”选项被意外启用。这种因果链条是纯时间戳永远无法提供的。但它也有硬伤默认情况下系统日志只保留最近7天可配置且需要管理员权限才能访问。提示没有“最好”的方法只有“最合适”的场景。日常快速查看用任务管理器做资产台账用PowerShell批量导出排查诡异重启必须翻事件查看器而msinfo32建议作为你的“系统身份证”存档——每次新装机或重大升级后截图保存它的启动时间未来回溯时就是黄金参照系。3. 核心细节解析与实操要点从命令到真相那些文档里不会写的参数陷阱与精度真相当你决定用PowerShell获取开机时间时表面上只是一行命令但背后藏着三个极易被忽略的“魔鬼细节”它们直接决定你拿到的数据是“可用”还是“误导”。我踩过坑也帮别人填过坑这些细节必须掰开揉碎讲清楚。3.1 时间格式的“双重幻觉”WMI返回值 vs 人类可读时间执行Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object LastBootUpTime你看到的输出类似20240512142317.000000480。这不是乱码而是WMI标准的YYYYMMDDHHMMSS.mmmmmmUUU格式其中480代表东八区UTC8的偏移分钟数。很多新手直接复制这个字符串去算时间差结果全错。正确做法是必须用转换器[Management.ManagementDateTimeConverter]::ToDateTime(20240512142317.000000480)。但这里还有第二层陷阱——ToDateTime()返回的是DateTime对象而Windows内核的LastBootUpTime实际是基于KeQueryUnbiasedInterruptTime()的64位计数器精度远高于DateTime的毫秒级。这意味着如果你用New-TimeSpan计算“距今已运行多久”得到的结果是精确的但如果你用Get-Date减去转换后的DateTime再格式化输出秒数部分可能因DateTime的舍入而失真。实测下来同一台机器用[Management.ManagementDateTimeConverter]::ToDateTime()转换后取.Second属性和用Get-CimInstance直接获取LastBootUpTime再用[WMI]::DateTimeToDateTime()转换秒数可能相差1-2秒。这不是Bug而是不同API对同一底层数据的封装粒度差异。我的建议是永远用[Management.ManagementDateTimeConverter]::ToDateTime()做转换因为它与WMI规范严格对齐若需极致精度直接用Get-CimInstance返回的对象做New-TimeSpan计算跳过字符串转换环节。3.2 “快速启动”Fast Startup的隐身术它让开机时间变成“伪命题”Windows 8引入的快速启动功能本质是混合关机Hybrid Shutdown关机时系统将内核会话和驱动状态保存到hiberfil.sys下次开机时直接从休眠镜像恢复跳过完整的硬件初始化和驱动加载。这导致一个反直觉现象LastBootUpTime记录的是“上次完整启动时间”而非“本次会话开始时间”。举个例子你周一18:00关机启用快速启动周二8:00开机任务管理器显示“已运行 14 小时”但LastBootUpTime可能仍是周一18:00——因为内核态并未真正重启。如何验证运行powercfg /systemstate查看输出中的Fast Startup State是否为Enabled再执行powercfg /sleepstudy生成睡眠研究报告里面会明确标注每次“Resume from Fast Startup”的时间点。我的实操心得是在需要精确追踪单次会话生命周期的场景如软件License校验、安全审计必须禁用快速启动。组策略路径计算机配置 → 管理模板 → 系统 → 电源管理 → 睡眠设置 → 关闭“允许使用快速启动”或者用PowerShellSet-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power -Name HiberbootEnabled -Value 0。3.3 权限与远程执行的“静默失败”为什么脚本在本地成功推到域控就报错Get-CimInstance在远程机器上执行时常遇到Access is denied或The RPC server is unavailable错误。这并非权限不足那么简单而是涉及三个层面的配置WinRM服务远程机器必须运行WinRM服务winrm quickconfig一键配置防火墙规则需放行Windows Remote Management (HTTP-In)端口默认5985CIM会话认证本地执行用当前用户上下文远程则需显式指定凭据。正确写法是$session New-CimSession -ComputerName RemotePC -Credential (Get-Credential) Get-CimInstance -CimSession $session -ClassName Win32_OperatingSystem | Select-Object PSComputerName, LastBootUpTime但这里有个隐藏雷区如果目标机器是Windows 10家庭版它默认禁用WinRM且无法通过winrm quickconfig启用缺少组策略支持。此时唯一可靠方案是改用Invoke-Command配合Get-WmiObject旧WMI兼容性更好或退回到最原始的psexec \\RemotePC cmd /c systeminfo | findstr System Boot Time。我整理过一份常见失败场景速查表错误现象根本原因解决方案Access is denied远程机器未加入域且当前用户无本地管理员权限在远程机器上运行net localgroup administrators 当前用户名 /addThe RPC server is unavailableWinRM服务未启动或防火墙拦截远程执行Start-Service winrmEnable-NetFirewallRule -DisplayName Windows Remote Management (HTTP-In)返回空结果目标机器为家庭版WinRM不可用改用psexec或本地登录后手动执行注意所有涉及远程执行的操作务必在测试环境充分验证。我曾在一个生产环境中因忘记检查防火墙规则导致批量脚本触发了上百条安全告警——不是技术问题而是流程疏忽。4. 实操过程与核心环节实现从单机查询到企业级巡检一套可直接落地的完整方案现在我们把前面所有知识点组装成一个真实可用的、覆盖单机到批量的完整工作流。这套方案我在某公司内部推广过从最初的手动查一台到现在每天凌晨自动扫描全网终端整个过程没有依赖任何第三方商业软件全部基于Windows原生工具链。4.1 单机快速诊断三步定位“异常开机”当用户报告“电脑自己重启了”不要急着重装系统先用这三步锁定线索第一步抓取当前精确时间戳# 以管理员身份运行PowerShell执行 $now Get-Date $boot [Management.ManagementDateTimeConverter]::ToDateTime((Get-CimInstance -ClassName Win32_OperatingSystem).LastBootUpTime) $uptime New-TimeSpan -Start $boot -End $now Write-Host 当前时间: $now Write-Host 开机时间: $boot Write-Host 已运行: $($uptime.Days)天 $($uptime.Hours)小时 $($uptime.Minutes)分钟第二步交叉验证事件日志# 查询最近10条系统启动事件ID 12 Get-WinEvent -FilterHashtable {LogNameSystem; ID12} -MaxEvents 10 | Select-Object TimeCreated, Message | Format-List重点看Message字段里的“启动原因”和“启动模式”。如果出现PowerFailure或KernelPower立刻检查UPS和电源设置如果全是UserInitiated那基本可以排除硬件问题。第三步检查快速启动状态# 查看快速启动是否启用 (Get-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power -Name HiberbootEnabled).HiberbootEnabled # 返回1启用0禁用如果返回1且你怀疑是快速启动导致的“假重启”立即执行shutdown /r /t 0进行一次完整重启再重复第一步——真正的重启时间会立刻更新。4.2 批量资产巡检用PowerShell脚本自动生成健康报告假设你需要每周一上午9点向IT经理提交一份《终端健康度周报》包含所有办公电脑的开机时长、是否启用快速启动、以及最近一次异常重启时间。以下是经过生产环境验证的脚本核心逻辑已脱敏# 定义目标机器列表可从AD或CSV导入 $computers (PC001, PC002, PC003) # 实际使用时替换为Get-ADComputer等命令 # 创建结果数组 $results () foreach ($computer in $computers) { try { # 建立CIM会话含错误捕获 $session New-CimSession -ComputerName $computer -ErrorAction Stop # 获取系统信息 $os Get-CimInstance -CimSession $session -ClassName Win32_OperatingSystem -ErrorAction Stop $bootTime [Management.ManagementDateTimeConverter]::ToDateTime($os.LastBootUpTime) $uptime New-TimeSpan -Start $bootTime -End (Get-Date) # 检查快速启动 $fastStartup Invoke-Command -ComputerName $computer -ScriptBlock { (Get-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power -Name HiberbootEnabled -ErrorAction SilentlyContinue).HiberbootEnabled } -ErrorAction SilentlyContinue # 查询最近一次异常重启ID 41, 6008, 1001 $crashEvent Get-WinEvent -ComputerName $computer -FilterHashtable { LogNameSystem ID41,6008,1001 } -MaxEvents 1 -ErrorAction SilentlyContinue | Sort-Object TimeCreated -Descending | Select-Object -First 1 # 构建结果对象 $results [PSCustomObject]{ ComputerName $computer BootTime $bootTime UptimeDays [math]::Round($uptime.TotalDays, 1) FastStartupEnabled if ($fastStartup -eq 1) { 是 } else { 否 } LastCrashTime if ($crashEvent) { $crashEvent.TimeCreated } else { 无记录 } Status if ($uptime.TotalDays -gt 30) { 高风险超30天 } elseif ($uptime.TotalDays -lt 1) { 正常新启动 } else { 健康 } } Remove-CimSession -CimSession $session } catch { $results [PSCustomObject]{ ComputerName $computer BootTime 连接失败 UptimeDays N/A FastStartupEnabled N/A LastCrashTime N/A Status 离线 } } } # 导出为Excel需安装ImportExcel模块 $results | Export-Excel -Path C:\Reports\TerminalHealth_$(Get-Date -Format yyyyMMdd).xlsx -WorksheetName 健康度 -TableName HealthTable -AutoSize # 发送邮件通知示例 $smtpServer smtp.company.local $from it-reportcompany.local $to it-managercompany.local $subject 【自动报告】终端健康度周报 - $(Get-Date -Format yyyy-MM-dd) $body 报告已生成详见附件。共扫描 $($computers.Count) 台设备其中 $($results.Where{$_.Status -eq 高风险超30天}.Count) 台需重点关注。 Send-MailMessage -SmtpServer $smtpServer -From $from -To $to -Subject $subject -Body $body -Attachments C:\Reports\TerminalHealth_$(Get-Date -Format yyyyMMdd).xlsx这个脚本的关键设计点在于健壮性每个try/catch块都针对具体操作会话建立、WMI查询、事件读取避免单点失败导致整个脚本中断可读性结果对象的属性名UptimeDays,FastStartupEnabled直接对应业务语言报表使用者无需懂技术可扩展性Status字段的判断逻辑是独立的未来增加“内存使用率超90%”等新指标只需在$results 前添加一行计算即可合规性所有远程操作都显式声明-ComputerName和-Credential脚本中省略了凭据部分实际部署需用Get-Credential或证书认证。4.3 企业级集成将开机时间嵌入现有监控体系很多企业已有Zabbix、Prometheus等监控平台没必要另起炉灶。我们可以把开机时间变成一个标准的监控指标。以Prometheus为例核心是编写一个Exporter创建一个PowerShell脚本boottime_exporter.ps1内容同4.2节的批量查询逻辑但输出改为Prometheus文本格式# HELP windows_boot_time_seconds System boot time as a Unix timestamp # TYPE windows_boot_time_seconds gauge windows_boot_time_seconds{instancePC001} 1715500997 # HELP windows_uptime_seconds System uptime in seconds # TYPE windows_uptime_seconds gauge windows_uptime_seconds{instancePC001} 2592000用windows_exporter的textfile收集器定期执行该脚本将输出写入/var/lib/prometheus/textfile_collector/boottime.prom在Prometheus配置中添加textfilejob指标即可被采集。这样开机时间就不再是孤立的数据点而是能和CPU、内存、磁盘IO等指标联动分析的维度。比如你可以创建一个Grafana面板画出“开机时长 vs 平均CPU负载”立刻就能看出是否运行时间越长系统越卡顿这背后可能是内存泄漏也可能是驱动累积的资源句柄未释放。这才是把一个基础操作真正用成了业务洞察的起点。5. 常见问题与排查技巧实录那些让你拍大腿的“原来如此”瞬间最后分享几个我在真实场景中遇到的、教科书里绝对找不到的“灵异事件”及其破解之道。它们不是冷知识而是能帮你节省数小时排查时间的实战经验。5.1 问题任务管理器显示“已运行 0 天 0 小时 0 分钟”但机器明明开着现象描述一台新装的Windows 11机器开机后任务管理器性能页的“开机时间”始终显示为0。排查过程首先排除硬件问题换电源、换内存无效检查系统时间date命令显示时间正确w32tm /query /status显示时间服务正常执行Get-CimInstance Win32_OperatingSystemLastBootUpTime返回一个明显错误的值如19700101000000.000000000根本原因BIOS电池电量耗尽导致CMOS时间归零。Windows启动时从CMOS读取的初始时间为1970年1月1日Unix纪元内核用这个错误时间初始化KeBootTime后续所有基于此的计算都崩了。解决方案更换主板电池CR2032重启后进入BIOS手动校准时间再进Windows执行w32tm /resync同步网络时间。实操心得当遇到所有时间相关功能包括计划任务、证书验证集体失效时第一反应不是重装系统而是先摸一下主板电池温度——凉的基本就是它。5.2 问题PowerShell脚本在本地运行完美打包成exe后远程执行就失败现象描述用PS2EXE将4.2节的脚本打包双击运行时远程机器列表为空或所有机器都报“连接失败”。排查过程检查exe的执行策略Get-ExecutionPolicy返回AllSigned但exe本身无签名运行Process Monitor抓取exe的文件访问发现它试图读取C:\Users\Public\Documents\computers.txt但该文件不存在根本原因PS2EXE打包时默认工作目录变为C:\Windows\System32而脚本中硬编码的相对路径如.\computers.csv就失效了。更隐蔽的是某些PowerShell模块如ImportExcel在exe中无法动态加载导致Export-Excel命令根本不存在。解决方案打包前将所有外部依赖CSV文件、模块DLL放入exe同目录并在脚本中用$PSScriptRoot获取绝对路径对于ImportExcel等模块改用Export-Csv导出再用系统自带的Start-Process excel.exe打开最彻底的方案放弃exe改用Scheduled Task调用ps1脚本并设置“不管用户是否登录都要运行”同时勾选“使用最高权限”。5.3 问题事件查看器里找不到ID 12但机器确实重启过现象描述用户坚称电脑昨晚蓝屏了但你在事件查看器系统日志里筛选ID 12一条记录都没有。排查过程检查日志大小右键“系统”日志 → 属性 → “最大日志大小”发现只有1MB而默认每条事件约2KB1MB只能存500条远不够覆盖一周执行wevtutil qe System /q:*[System[(EventID12)]] /c:10返回空但wevtutil qe System /c:10却能看到其他事件根本原因日志被循环覆盖了。Windows默认设置是“当日志满时按需要覆盖事件”而ID 12事件并不高频很容易被其他海量的“服务启动”、“驱动加载”事件挤掉。解决方案立即扩大日志容量wevtutil sl System /ms:100MB设为100MB启用日志归档在事件查看器中右键“系统”日志 → 属性 → 勾选“当日志满时按需要覆盖事件不覆盖事件”并设置“最大日志大小”为足够大更进一步创建一个订阅任务在“事件查看器本地”→“订阅”新建订阅筛选ID 12、41、6008将事件实时转发到中央日志服务器。5.4 问题速查表开机时间相关故障的“症状-原因-动作”对照为了方便你快速定位我把高频问题整理成一张表覆盖从硬件到策略的全链路用户症状可能原因立即验证动作推荐修复动作开机时间显示为1970年BIOS电池失效或CMOS时间错误运行wmic os get lastbootuptime看返回值是否为19700101000000.000000000更换主板电池BIOS校准时间w32tm /resync任务管理器时间与PowerShell不一致差几分钟快速启动启用且上次是混合关机运行powercfg /a查看输出中是否有Standby (S3)和Hibernate并存禁用快速启动执行shutdown /r /t 0远程批量查询大量失败WinRM未配置或防火墙拦截在目标机器上运行winrm quickconfig然后Test-WSMan -ComputerName localhost启用WinRM开放防火墙端口检查域策略是否禁用远程管理事件查看器查不到重启记录系统日志容量过小或被覆盖右键“系统”日志 → 属性 → 查看“最大日志大小”和“日志满时行为”扩大日志容量至100MB以上启用日志归档脚本导出的Excel里时间显示为########Excel列宽不足或单元格格式错误选中列 → 双击列标题右侧边界在PowerShell中导出前用Export-Excel的-AutoSize参数我在某次给某高校IT部门做培训时当场用这张表10分钟内帮他们定位了一台实验室电脑的周期性重启问题——根源是实验室空调夜间停机导致机房温度飙升触发了CPU过热保护重启而事件ID 12里明确写着Reason: Thermal。你看一个基础操作只要深挖一层就能连通物理世界与数字世界的因果链。
RELATED

相关推荐

Cursor配额机制与账户保活实战指南

Cursor配额机制与账户保活实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/23 1:21:25
急停必须用常闭触点?过载保护为何要硬件锁存

急停必须用常闭触点?过载保护为何要硬件锁存

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/23 1:21:25
六类AI编程工具横评:选型、成本与落地实践

六类AI编程工具横评:选型、成本与落地实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/23 1:21:25
MORE NEWS

更多资讯

📰

游戏启动器文件校验失效导致的启动异常解决方案:从原理到实践的完整指南

游戏启动器文件校验失效导致的启动异常解决方案:从原理到实践的完整指南 一、故障现象:文件校验失败的典型表现 当游戏启动器文件验证机制失效时,通常会出现三种特征性错误:启动界面卡在"验证文件"阶段、弹出"哈希…

📰

Minecraft启动器零基础指南:从安装到精通的完整配置教程

Minecraft启动器零基础指南:从安装到精通的完整配置教程 欢迎使用Plain Craft Launcher 2(PCL2)——这款专为我的世界玩家打造的全能启动工具。无论你是初次接触Minecraft的新手,还是想要优化游戏体验的资深玩家,本指…

📰

从Demo到生产环境:基于Agents-A1构建企业级Agent服务与部署优化清单

大模型人工智能AI Agent多模态模型量化 【免费下载链接】Agents-A1-FP8 项目地址: https://ai.gitcode.com/InternScience/Agents-A1-FP8 点击查看 免费下载 Agents-A1 是 InternScience 推出的 35B-A3B MoE 架构 Agent 模型,本仓库 Agents-A1-FP8 提供…

📰

Path of Building PoE2 实用指南:流放之路2的离线BD规划与伤害计算

Path of Building PoE2 实用指南:流放之路2的离线BD规划与伤害计算 【免费下载链接】PathOfBuilding-PoE2 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding-PoE2 Path of Building PoE2 是一款开源、离线的流放之路2 BD规划与伤害计算工具…

📰

5大核心功能带你玩转Plain Craft Launcher 2:从入门到精通的Minecraft启动器指南

5大核心功能带你玩转Plain Craft Launcher 2:从入门到精通的Minecraft启动器指南 Plain Craft Launcher 2(简称PCL2)是一款专为Minecraft玩家打造的开源启动器,集成多账户管理、智能模组检测和性能优化三大核心功能,帮…

📰

文本块(Text Blocks):告别繁琐的字符串拼接(Java代码实现)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬