2025-06-27 12:44:56
你是否曾經歷過這樣的驚魂時刻:
透過Bandizip直接打開壓縮檔裡的Word或Excel文件,埋頭苦幹了半天,按下儲存並關閉檔案後,卻沒有像往常一樣跳出「是否要將變更更新至壓縮檔?」的提示。Bandizip靜悄悄的,彷彿什麼事也沒發生。這時候,一陣冷汗冒上背脊——難道剛剛編輯的內容全都消失了嗎?
先別慌張!你辛苦的成果極有可能還安全地躺在電腦的某個角落。這篇文章將帶你了解背後的原理,並提供清晰的步驟,讓你迅速找回那個「失蹤」的臨時檔案。
首先,我們需要明白,任何壓縮軟體(包括Bandizip)都無法直接修改壓縮檔內的檔案。當您對著壓縮檔裡的文件點擊兩下時,實際發生了以下事情:
然而,有時候因為軟體衝突、權限問題或不明原因的程式小錯誤,最後這個「偵測與更新」的步驟失敗了,導致提示視窗沒有出現。
當您發現更新提示沒有出現時,請依照以下步驟操作。最關鍵的一點是:盡量不要關閉 Bandizip,並立即行動!因為有些暫存檔可能會在程式關閉後被自動清理。
第一步:打開「執行」對話框
同時按下鍵盤上的Windows 標誌鍵 ⊞
+ R
鍵。這個組合鍵會快速叫出系統的「執行」視窗。
第二步:輸入指令%temp%
在「執行」視窗的輸入框中,準確輸入以下內容(包含兩個百分比符號),然後按下「確定」或Enter鍵:
%temp%
這個指令是一個系統捷徑,會立刻打開目前使用者的臨時資料夾,省去您在複雜的C槽路徑中尋找的麻煩。
第三步:在臨時資料夾中尋找你的檔案
臨時資料夾裡通常會存放大量的暫存檔,看起來可能有些混亂。別擔心,使用以下技巧可以快速定位目標:
我的報告.docx
)很可能就直接出現在列表的最上方。BNZ
或_bz
開頭。如果您沒直接看到檔案,可以找找看有沒有類似名稱的資料夾,您的檔案就在裡面。第四步:立刻備份檔案!
一旦找到了您編輯過的檔案,請立刻將它複製(不要用剪下)到一個安全的位置,例如桌面、您的文件資料夾等。這樣可以確保您的心血結晶被安全地保存下來。
雖然上述方法是有效的救援手段,但最好的策略還是預防。如果您需要對壓縮檔內的檔案進行重要或長時間的編輯,建議採用更穩健的作法:
這個過程雖然多了一兩個步驟,但它最可靠,能完全避免因臨時檔案機制失靈而導致的資料遺失風險。
希望這篇教學能幫助您在未來遇到類似情況時,能夠從容不迫地解決問題!
2025-06-12 21:27:41
这几年笔记本电脑性能越来越强,但玩游戏或者跑大软件的时候,发热和风扇吵的问题也越来越厉害了。本文以陪伴了笔者多年的老机——ASUS GL553VD笔记本(i7-7700HQ + GTX 1050/1060)为例,汇总了从安装环境、XTU/ThrottleStop调控、GPU控制、风扇曲线、自动启动到硬件维护的完整降温降噪方案,附带各项技术细节,帮助追求静音与性能平衡的朋友们。
Intel XTU(Extreme Tuning Utility)是英特尔官方推出的一款Windows平台下的系统级调校软件,允许用户对CPU的频率、电压、功耗等参数进行实时监控与精细调节,以追求更高性能或更低温噪。
当然,在安装它的过程中,可能会遇到报错。Intel XTU倘安装失败,是会输出日志文件,并弹窗提示用户查阅的(这点比隔壁NVIDIA要好太多)。最常见的是:
0x80070643
e000: Error 0x80070643: Failed to install MSI package.
0x80070643
是Windows Installer通用的“致命错误”,通常意味着:
RebootPending = 1
);或者是4.7.2
、VC++ 2015-2022运行库完整;在经过上述排查后,倘若还是无法正确安装,那么可能是所使用的电脑系统版本、CPU型号、世代等不支持使用中的Intel XTU安装包。以笔者的情况为例,从官网下载到的最新版的Intel XTU(笔者写作当时下载的是2025年夏释出的10.0.1.31
版)就无法正常安装,会提示曰——不适应当前的platform
(平台)。好在官网提供两种下载包:
下面是两个版本的英特尔® XTU,版本 7.14.2.45 支持未锁频的英特尔® 酷睿
英特尔® Extreme Tuning Utility (英特尔® XTU)下载页面处理器(第 14 代)和更早的处理器,而版本 10.0 支持未锁频的英特尔® Core
Ultra处理器(系列 2)及更高版本。
所以选择去下载支持早期处理器的最终版本就好了。笔者的实测,也是能够无报错地顺利安装的。
Unable to start Intel(R) Extreme Tuning Utility because of a system incompatibility.
XTU is incompatible with Windows VBS (Virtualization-based security).
Your CPU/BIOS does not have Undervolt Protection support as a mitigation, so you should check the status of services that can enable VBS. Click here to read more about Windows features that can enable VBS.
Click here to check the status of Windows VBS.
Consult the XTU documentation for more information.
Disabling Windows services or features may affect the functionality of other applications.
弹窗提示文本
# 关闭 Hyper-V
dism.exe /Online /Disable-Feature:Microsoft-Hyper-V
# 关闭 Windows Hypervisor Platform(如果启用了的话)
dism.exe /Online /Disable-Feature:VirtualMachinePlatform
命令执行完成后再重启。bcdedit /set hypervisorlaunchtype off
然后重启。gpedit.msc
打开组策略编辑器关闭VBS/Hyper-V会降低一部分系统安全(如HVCI、Credential Guard等保护功能),请权衡风险。这里提示:若不想关闭VBS,其实也未必要用XTU,直接使用下文的ThrottleStop、NVIDIA Inspector等工具替代。
笔者的情况,是即便尝试关闭了Windows安全下的“内存完整性”设置,也无法通过XTU做任何调整电压的设置,所以只能放弃。
笔者打开XTU主界面后,迎面而来的是:
Power & Current Limits Optimized
(一键优化电源和电流限制)与Run Benchmark
(内置基准测试)俩按钮。Power & Current Limits Optimized
系官方推荐之快速模式。按道理第一次调试前得先跑一次基准(Run Benchmark
)并保存得分;再启用这个一键优化模式再跑一次:观察它给到的“预设优化”能带来多少收益。
但是在笔者电脑上,Power & Current Limits Optimized
按钮是灰色的,不能点。点击旁边的信息提示按钮ⓘ
,指出:如果想超频,需要在Advanced View
里对核心倍频和电压做小幅度调整。但由于笔者的i7-7700HQ并不是K系列,倍频是锁死的,无法像台式K系列那样真正超频。所以按钮会灰掉。
在主界面没事儿可做,遂随便跑了下Run Benchmark
,得分1127
。
System Infomation
标签页展示系统信息Advanced Tuning
(高级调校)标签页下一片空白左下角还有个Advanced View
按钮,能展开更多的配置选单。点击后默认是System Infomation
标签页,展示系统信息的。在左侧蓝色栏里,点击第二项Advanced Tuning
(高级调校),尝试切过去——结果该标签页下一片空白。按道理在这里能做以Processor Core Voltage Offset
(核心电压偏移)为首的Processor Core
(处理器核心)设置,但是笔者这边就是没有。这一般不是软件错乱,而是笔者这台机子/BIOS/微码把所有MSR可调寄存器都锁死了——XTU本身没东西可以调,自然就返回一片空白。
ThrottleStop是Windows下最强大的Intel CPU调控利器,能针对功耗、频率、电压进行细致调整。笔者此次安装了ThrottleStop 9.7版本。
主界面左上四个可选按钮代表4个profile,可以挑一个觉得名字合适的profile(或者把其中一个profile直接通过设置页改名),以进行后续的操作。
切档流程:选中按钮 → 修改参数 → Save
→ Turn On
。
下面开始介绍具体的配置方法。这里先且总结一下思路:
EPP
+低PL1
/PL2
+短冲刺时长 → 大幅降低平均功耗与温度,噪音跟着掉。SpeedStep
+C1E
可确保空闲时更低功耗。PL1
(例如35W
),或把EPP调到255
。每次改完记得跑个短压测(如TS Bench、Prime95、3DMark)看温度/频率,找到「性能‐噪音‐温度」的最佳平衡点。
SpeedShift EPP
:勾选它,然后把右边128
的数值调高到200
–240
(越大越偏向节能、低温)。
SpeedStep
& C1E
:都勾上,让空闲时进深度节电态。BD PROCHOT
:勾选,可以让CPU感知到VRM/芯片组的过热并配合降频(更安全);如果愿意稍微冒点风险,也可以先不勾。Disable Turbo
:不要勾,这样还能保留短暂冲刺;真正靠下面的功耗限制来控温。勾完以后,点左下的Save
。
FIVR
→ 勾选 Core & Cache 的 “Unlocked” → Offset Voltage 设为 –80 mV ~ –120 mV。效果:核心与缓存双降压,稳态降温 5–10 ℃。
TPL
打开 “Turbo Power Limits”。Disable Controls
,勾选并设置:
Apply
→ OK
→ (主界面)Save
。效果:短时冲刺后迅速回到45 W,显著降低平均功耗与温度。
C1E
/ C10
:空闲时迅速进入深度睡眠态。SpeedStep
,保留涡轮但优先调度低频率。Clock Mod
(80–90%)或Set Multiplier
:进一步锁频,必要时可用。ThrottleStop 9.7取消内置开机启动,推荐:
方法一:启动文件夹
Win+R → shell:startup
在此文件夹新建ThrottleStop.exe快捷方式,并在Options勾选Start Minimized
方法二:任务计划
ThrottleStop.exe
,参数-minimized
;使用NVIDIA Inspector这款软件。
使用开源的Fan Control(笔者用的是FanControl V226)替代BIOS风扇曲线(既然BIOS改不了的话),具体配置:
参数 | 建议值 | 说明 |
---|---|---|
关闭温度 | 45 ℃ | 非负载时保持静音 |
最小速度 | 10 % | 风扇最低档 |
步进 (Step) | 1 %/s | 平滑升降 |
死区 (Dead) | 2 ℃ | 避免频繁抖动 |
负载温度 | 75 ℃ | 达到此温度开始冲档 |
最大速度 | 80 % | 保证足够散热,同时控制噪音 |
响应时间 | 1 s | 温度变化后 1 秒再调速 |
高级方案:再建一条高负载曲线(负载温度85℃ → 最大100%),切换profile实现静音与散热兼顾。
笔者的情况下,BIOS无法修改风扇曲线。如果要尝试修改的话,可采取以下思路:
通过软件+固件+硬件三管齐下的方式,从CPU功耗、电压限制,到GPU节能配置,再到风扇曲线和系统策略,你可以将笔记本的温度与噪音控制在一个令人满意的水平,同时不损失过多性能。每台机器与环境不同,建议分档测试压测(TS Bench、3DMark、FurMark、游戏),逐步微调,找到最适合你的平衡点。
祝你的笔记本静音顺畅,性能在线!
2025-06-09 20:32:11
在支持HTML的环境(包括不少现代的Markdown编辑器1)使用<ruby>
标签为汉字等表意文字添加注音(如拼音或振假名),是一个非常实用的功能。然而,一个常见的痛点是,在不支持该标签的纯文本渲染环境下,内容的可读性会大大降低。
例如,一个标准的<ruby>
标签:
<ruby>大学<rt>だいがく</rt></ruby>
在纯文本的渲染环境中会显示为大学だいがく
,这显然不够理想。2
<rp>
标签HTML标准为此提供了一个优雅的解决方案:<rp>
(ruby parenthesis)标签。它的作用是包裹“备用字符”(通常是括号),这些字符只在不支持<ruby>
的环境中显示。
理想的格式应该是这样:
<ruby>大学<rp>(</rp><rt>だいがく</rt><rp>)</rp></ruby>
这样可以实现两全其美的效果:
大学(だいがく)
,未尝有损可读性。那么,如何将手上的文字(譬如说电子笔记库)中所有旧格式的<ruby>
标签批量升级到这种新格式呢?自然会想到的是全局搜索与正则表达式。
(警告:请不要急着一行行跟着以下方案批量替换,建议先看看下文再做决定。另外,任何时候都请记得做好备份,再批量修改。)
这里用可以直接管理包括.markdown
文件在内的笔记文档的VS Code来举例。我们最直接的想法是找到所有的注音标签,然后给它们加上括号。
<rt>(.*?)<\/rt>
<rp>(</rp><rt>$1</rt><rp>)</rp>
这个方案可以处理最简单的情况。但很快我们就会发现第一个问题。
当遇到像日语“地震”这样的词,其源代码可能是:
<ruby>地<rt>じ</rt>震<rt>しん</rt></ruby>
上面的简单方案能正确工作吗?是的。它会独立地将<rt>じ</rt>
替换为<rp>(</rp><rt>じ</rt><rp>)</rp>
,并将<rt>しん</rt>
替换为<rp>(</rp><rt>しん</rt><rp>)</rp>
,最终得到正确的结果:
<ruby>地<rp>(</rp><rt>じ</rt><rp>)</rp>震<rp>(</rp><rt>しん</rt><rp>)</rp></ruby>
到目前为止,一切似乎都很顺利。但一个更隐蔽的“定时炸弹”埋藏在这个方案中。
问题在于,如果我们不小心再次运行4这个替换脚本,会发生什么?
它会找到已经修复好的<rp>(</rp><rt>じ</rt><rp>)</rp>
中的<rt>じ</rt>
,然后再次为它套上括号,导致灾难性的结果:
<rp>(</rp><rp>(</rp><rt>じ</rt><rp>)</rp><rp>)</rp>
这破坏了幂等性5原则。一个健壮的脚本必须能够安全地重复执行而不产生副作用。
因此,我们需要一个最终的、更智能的查找逻辑:只查找那些尚未被<rp>(</rp>
和<rp>)</rp>
包裹的<rt>
标签。
正则表达式的“反向否定查找”(negative lookbehind),写作(?<!...)
,是解决这个问题的完美工具。它允许我们匹配一个模式,但前提是它的前面不是某个特定的字符串。
Ctrl+Shift+H
或 Cmd+Shift+H
)。.*
图标)。(?<!<rp>\(<\/rp>)<rt>(.*?)<\/rt>
<rp>(</rp><rt>$1</rt><rp>)</rp>
(?<!<rp>\(<\/rp>)<rt>(.*?)<\/rt>
(?<!<rp>\(<\/rp>)
:这是关键。它是一个反向否定查找,意思是:“从当前位置往前看,前面的文本不能是 <rp>(</rp>
”。注意,为了匹配字面上的括号 (
,我们用 \(
对其进行了转义。<rt>(.*?)<\/rt>
:这部分和之前一样,用于匹配 <rt>
标签及其内容。这个查找表达式现在变得非常智能:
<ruby>地<rt>じ</rt>...
中的<rt>じ</rt>
,因为它的前面是字符地
,不是<rp>(</rp>
。<ruby>地<rp>(</rp><rt>じ</rt>...
中的<rt>じ</rt>
,因为它前面的文本正好是我们排除了的<rp>(</rp>
。这样,无论对文件执行多少次这个替换操作,它都只会影响那些尚未被修复的旧标签,而对已经符合新格式的标签秋毫无犯,完美地保证了操作的安全性和幂等性6。
通过这个逐步优化的过程,我们最终得到了一个强大、安全且一劳永逸的解决方案,可以放心地用它来优化整个笔记库。
<ruby>
标签并不是标准的Markdown语法——从“<
”与“>
”就能看出它的XML色彩,但是不少现代的Markdown编辑器——例如Obsidian之类——都会尽量支持HTML语法,<ruby>
标签也就包含在内了。 <rp>
的<ruby>
标签了。 2025-05-02 09:34:00
在Windows CMD中,如果无法直接cd
到一个网络目录(专门些的名字叫——通用命名约定〈UNC〉路径),可以使用net use
命令来临时挂载网络目录。以下是具体步骤12:
net use
命令挂载网络目录:net use Z: \\network_path\shared_folder /user:username password
Z:
是你希望分配给网络目录的本地驱动器号。\\network_path\shared_folder
是网络目录的路径。/user:username password
是访问网络目录所需的用户名和密码。Z: # 直接输入`Z:`便可切换至该挂载盘符
cd shared_folder # 然后用`cd`命令跳转
net use Z: /delete
pushd
命令在Windows CMD中,pushd
命令也可以用来临时挂载网络目录并切换到该目录(而且该方式还更常见一些)。具体步骤如下:
pushd
命令挂载网络目录3:set unc_path=\\network_path\shared_folder\b\c
pushd %unc_path%
popd
命令卸载网络目录:popd
使用pushd
命令时,它会将网络路径\\network_path\shared_folder
挂载到一个可用的盘符(例如Z:
),并将工作目录更改为Z:\b\c
。
但是,这种方法有一个致命的缺点:如果用户对\\network_path\shared_folder\b\c
有权限,但对\\network_path\shared_folder
没有权限,那么所有在此目录下的命令都会报错:Access is denied
4。
2024-11-05 10:16:45
如果容器正在使用docker-compose.yml
设置重启策略,临时将restart: always
改为restart: no
,然后执行docker-compose down
停止它。
手动启动容器并覆盖其默认命令,以便进入容器并设置权限。运行:
docker run -it --rm --entrypoint /bin/sh your_image_name
做完想做的事后,退出容器命令行:
exit
2024-10-12 12:01:44
在这篇博文中,笔者(山月)想记录自己如何解决BookWyrm部署过程中遇到的数据库问题,特别是在远程用户搜索时遇到的 “function similarity(character varying, unknown) does not exist” 错误。
背景是笔者(山月)从YunoHost搬迁到现有环境,使用Docker Compose来运行BookWyrm,但在搜索用户时总是出现数据库报错,提示找不到相似度函数。经过查找,了解到这是由于PostgreSQL中缺少pg_trgm
扩展导致的。
为了解决这个问题,笔者(山月)进入PostgreSQL数据库,并运行以下命令来安装所需的扩展:
CREATE EXTENSION IF NOT EXISTS pg_trgm;
执行上述命令后,数据库中添加了相应的相似度函数,错误终于得到了修复,用户搜索功能也正常运行了。
看来,有时候问题并不是代码本身,而是数据库的配置。
希望这篇文章能帮助到遇到类似问题的人,如果你也在使用BookWyrm或其他基于PostgreSQL的应用,记得检查是否已安装所有必要的扩展,尤其是像pg_trgm
这样的函数库,它能为用户搜索和文本相似度匹配提供很大的帮助。