MXBLOG - windows
type: channel
link: https://mx.moonjer.com/category/windows/
items: 用 FFmpeg + BAT 批处理打造视频工具箱：踩坑全记录
items: 清理 Windows 11 休眠文件
items: 如何在Windows系统中实现网络监控及自动关机与邮件通知功能
items: 双系统时间
items: 如何在Windows 11中禁用休眠文件以释放更多磁盘空间
items: Office2016出现“你可能是盗版软件的受害者”提示
items: 如何有效的关闭Win10自动更新？（5种方法）
items: win10映射WebDAV,远程挂载webdav
items: 切换Windows11右键菜单模式
items: windows配置jdk环境变量

用 FFmpeg + BAT 批处理打造视频工具箱：踩坑全记录
type: item
date: 2026-04-29T00:07:10+08:00
description: 记录一次从零开始编写 Windows 批处理视频工具箱的完整过程，重点整理调试途中踩到的经典 CMD 坑。工具最终实现了视频掐头去尾、多种合并模式、旋转、分辨率预处理、参数对比统一等功能。最终脚本@echo off chcp 936 >nul setlocal enabledelayedexpansion :: 配置项: 是否显示ffmpeg编码输出 (1=显示, 0=隐藏) set "SHOW_LOG=1" title 视频工具箱 :MENU cls echo ========================================== echo 视频工具箱 (FFmpeg) echo ========================================== echo. echo 1. 移除视频开头 (掐头) echo 2. 移除视频结尾 (去尾) echo 3. 合并多个视频 (直接合并) echo 4. 合并多个视频 (自动统一分辨率) echo 5. 旋转视频 - 快速 (仅修改标记) echo 6. 旋转视频 - 真实 (重新编码) echo 7. 预处理视频分辨率 (填充黑边) echo 8. 预处理视频参数 (对比并统一) echo 9. 退出 echo. echo ========================================== set /p choice="请输入选项 (1-9): " if "%choice%"=="1" goto MODE_CUT_START if "%choice%"=="2" goto MODE_CUT_END if "%choice%"=="3" goto MODE_MERGE if "%choice%"=="4" goto MODE_MERGE_PAD if "%choice%"=="5" goto MODE_ROTATE_FAST if "%choice%"=="6" goto MODE_ROTATE_REAL if "%choice%"=="7" goto MODE_PAD if "%choice%"=="8" goto MODE_PREPROCESS if "%choice%"=="9" exit /b goto MENU :: ========================================== :: 模式 1: 移除开头 :: ========================================== :MODE_CUT_START cls echo [模式: 移除开头] echo. set /a file_count=0 set /a index=0 echo 序号 文件名 echo ---------------------------------------- for /f "delims=" %%i in ('dir /b *.mp4 *.mov *.m4v 2^>nul') do ( set "tn=%%i" echo !tn! | findstr /i "_out _rotated _padded _handle" >nul if errorlevel 1 ( set /a index+=1 set "file_!index!=%%i" set /a file_count+=1 echo !index!. %%i ) ) if !file_count! equ 0 (echo 未找到视频文件 & pause & goto MENU) echo. set /p sel="输入序号(逗号分隔): " if "%sel%"=="" goto MENU set /p sec="移除开头秒数: " if "%sec%"=="" goto MENU set "sel=%sel: =%" set "sel=%sel:,= %" for %%n in (%sel%) do ( call set "vf=%%file_%%n%%" echo 处理: !vf! if "%SHOW_LOG%"=="1" ( for /f "delims=" %%f in ("!vf!") do ffmpeg -ss %sec% -i "!vf!" -map 0 -c:v copy -c:a copy -map_metadata 0 "%%~nf_out%%~xf" -y ) else ( for /f "delims=" %%f in ("!vf!") do ffmpeg -ss %sec% -i "!vf!" -map 0 -c:v copy -c:a copy -map_metadata 0 "%%~nf_out%%~xf" -…

清理 Windows 11 休眠文件
type: item
date: 2024-09-12T13:06:35+08:00
description: 在 Windows 11 专业版中，你可以通过以下步骤来释放休眠文件（Hibernate File），从而腾出磁盘空间。休眠文件是系统休眠（Hibernate）功能所需要的文件，它保存了系统的当前状态，以便在休眠状态下恢复。如果你不使用休眠功能，或者因为 C 盘空间不足，可以考虑释放这个文件。打开命令提示符或 PowerShell：点击任务栏上的“搜索”按钮，然后键入“cmd”或“PowerShell”。在搜索结果中，右键点击“命令提示符”或“Windows PowerShell”并选择“以管理员身份运行”。执行命令：在命令提示符或 PowerShell 窗口中，输入以下命令并按下 Enter：powercfg -h off这个命令会关闭休眠功能，并删除休眠文件。释放磁盘空间：休眠文件被删除后，系统会释放之前被占用的磁盘空间。重新启用休眠功能（可选）：如果以后你想要重新启用休眠功能，可以执行以下命令：powercfg -h on这个命令会重新启用休眠功能，并重新创建休眠文件。请注意：禁用休眠功能会使你无法使用系统的休眠模式。如果你经常使用休眠功能来保存系统状态并快速恢复，最好不要禁用休眠功能。另外，释放休眠文件可能会影响系统恢复速度。休眠功能的主要作用包括：快速恢复：休眠功能使计算机能够在保持状态的同时降低功耗，从而可以快速恢复到之前的工作状态。节省电能：休眠状态下，计算机的功耗会显著降低，有助于节省电能。临时关闭计算机：休眠功能类似于关机，但可以在保持工作状态的同时关闭计算机。避免数据丢失：休眠功能可以帮助你避免数据丢失，即使在电源中断的情况下也可以恢复到之前的状态。

如何在Windows系统中实现网络监控及自动关机与邮件通知功能
type: item
date: 2024-08-01T02:32:28+08:00
description: 如何在Windows系统中实现网络监控及自动关机与邮件通知功能本文将指导您如何在Windows系统中实现以下功能：每分钟检测当前网络环境是否断网。当断网超过30分钟时自动关机。当网络恢复时发送通知邮件到指定邮箱。准备工作确保您的系统已安装Microsoft Office（特别是Outlook），以便发送邮件。确保您有权限执行shutdown命令。您需要知道SMTP服务器的信息，包括地址、端口、用户名和密码。步骤一：编写检测网络状态的批处理脚本首先，我们需要创建一个批处理文件来检测网络状态。创建一个名为network_check.bat的文件，并将以下内容复制进去：@echo off setlocal enabledelayedexpansion rem 开始批处理脚本 rem @echo off 禁止显示命令 rem setlocal enabledelayedexpansion 允许使用延迟变量扩展 rem 检查网络状态 rem ping -n 1 www.google.com >nul 发送一个 ICMP 请求包到 www.google.com rem 如果返回错误级别为 1，则表示网络不通 if %errorlevel% EQU 1 ( rem 断网 rem 如果 disconnection_time 变量未定义，则记录当前时间 if not defined disconnection_time ( set "disconnection_time=%time%" echo Disconnected at !disconnection_time! ) else ( rem 如果已经记录了断网时间，则计算断网时间 rem 获取当前时间 set "current_time=%time%" rem 分离小时和分钟 set "disconnection=!disconnection_time:~0,2! !disconnection_time:~3,2!" set "current=!current_time:~0,2! !current_time:~3,2!" rem 计算断网时间（分钟） set /a "disconnection_minutes=!disconnection! * 60 + !disconnection:~3! - !current! * 60 - !current:~3!" rem 如果断网时间超过 30 分钟，则执行关机命令 if !disconnection_minutes! GTR 30 ( echo No internet for more than 30 minutes. Shutting down... shutdown /s /t 0 ) ) ) else ( rem 网络连接正常 rem 如果之前记录了断网时间，则清除该记录，并发送邮件通知 if defined disconnection_time ( echo Reconnected at %time% echo Resetting disconnection time and sending email notification. set "disconnection_time=" rem 调用 send_email.vbs 脚本来发送邮件 cscript //nologo send_email.vbs ) ) rem 结束批处理脚本 endlocal步骤二：创建发送邮件的VBScript脚本接下来，创建一个名为send_email.vbs的VBScript文件，用于发送邮件通知。将以下内容复制进去：Option Explicit ' 邮件服务器设置 ' SMTP_SERVER 是 SMTP 服务器的地址 ' SMTP_PORT 是 SMTP 服务器使用的端口 ' USER_NAME 是用于登录 SMTP 服务器的用户名 ' PASSWORD 是用于登录 SMTP 服务器的密码 Const SMTP_SERVER = "smtp.example.com" Const SMTP_PORT = 587 Const USER_NAME = "your_username@example.com" Const PASSWORD = "your_password" ' 收件人信息 ' TO_ADDRESS 是接收邮件的邮箱地址 ' FROM_ADDRESS 是发送邮件的邮箱地址 Const TO_ADDRESS = "recipient@example.com" Const FROM_ADDRESS = "sender@example.com" ' 创建 Outlook 对象 ' 使用 CreateObject 创建 Outlook.Applica…

双系统时间
type: item
date: 2024-07-01T16:13:34+08:00
description: 解决双系统时间不一致的问题解决双系统（如Windows和Linux）时间不一致的问题主要有两种方法：让Linux使用本地时间这个方法涉及到让Linux系统将硬件时钟当作本地时间，与Windows的行为一致。步骤包括：打开Linux系统；打开终端；执行命令 timedatectl set-local-rtc 1 --adjust-system-clock 来让硬件时钟假定为本地时间而非UTC；然后重启电脑。这个方法比较简单，但可能会影响Linux中某些时间相关的功能，尤其是那些依赖于UTC时间的功能。让Windows使用UTC时间另一种方法是让Windows将硬件时钟视为UTC时间。这需要编辑Windows的注册表。步骤如下：在Windows中，打开注册表编辑器（按下 Windows + R，输入 regedit，然后按回车）；导航到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation；在这个位置，右键点击空白区域，选择“新建” -> “DWORD (32位) 值”，将新建的值命名为 RealTimeIsUniversal；双击这个新值，将数据设置为 1；重启电脑。这种方法更符合标准，因为UTC时间是推荐的硬件时钟设置。但请注意，对注册表的编辑需要谨慎进行，错误的操作可能会影响系统稳定性。总结选择哪种方法取决于用户的使用偏好和系统的主要用途。如果Linux系统是用户主要使用的系统，那么让Linux使用本地时间可能更为合适。反之，如果Windows是主要系统，那么让Windows使用UTC时间可能更为合适。

如何在Windows 11中禁用休眠文件以释放更多磁盘空间
type: item
date: 2024-06-18T04:19:00+08:00
description: 对于众多Windows 11用户而言，管理硬盘空间是一项日常且重要的任务。随着应用程序、文件和数据的不断积累，有效的空间管理策略变得尤为关键。休眠文件（Hiberfil.sys）作为支持休眠模式的一个系统文件，会占用相当一部分硬盘空间。在本文中，我们将详细指导您如何在Windows 11中禁用休眠文件以释放系统空间，从而为您的电脑“瘦身”。工具与原料：系统版本： Windows 11品牌型号： 所有支持Windows 11的电脑品牌和型号软件版本： 不适用一、休眠文件简介休眠模式允许电脑将当前状态（包括打开的文档和应用程序）保存到硬盘中的休眠文件，然后关闭电源。当您再次启动电脑时，可以迅速恢复到之前的状态，而无需重新启动。尽管休眠模式为用户带来便利，但其休眠文件可能占用大量硬盘空间，特别是在拥有较小SSD的电脑上更是如此。二、检查休眠模式状态在禁用休眠文件之前，首先需要检查休眠模式是否已经启用。打开“命令提示符”（以管理员身份），输入powercfg /availablesleepstates，回车。如果看到“休眠”被列出，则说明休眠模式已启用。三、禁用休眠文件要禁用休眠文件，需要使用命令提示符执行特定命令。以管理员身份打开命令提示符，输入powercfg.exe /hibernate off，然后回车。这条命令将禁用休眠模式并删除休眠文件，从而释放占用的硬盘空间。四、检验空间释放效果执行完上述操作后，可以通过查看硬盘属性来检验空间是否已成功释放。休眠文件的删除应该会立即释放与之前休眠文件大小相当的硬盘空间。总结：通过禁用Windows 11中的休眠文件，用户可以有效地释放出一部分硬盘空间，尤其对于SSD用户来说，这可能是一项有益的系统优化策略。然而，值得注意的是，禁用休眠模式意味着您将无法使用休眠功能。因此，在执行此操作之前，请确保您不常使用休眠模式，或者硬盘空间的需求超过了对休眠功能的需求。总之，合理管理系统文件和功能，可以让您的电脑运行更加高效，同时也保证了足够的存储空间供日常使用。

Office2016出现“你可能是盗版软件的受害者”提示
type: item
date: 2023-01-20T18:59:00+08:00

如何有效的关闭Win10自动更新？（5种方法）
type: item
date: 2022-07-25T09:50:00+08:00
description: Windows设置Windows Update服务本地组策略编辑器任务计划程序注册表编辑器注意：Win10自动更新关闭后，系统长期不更新当您再次尝试将系统更新到新版本系统，可能会导致系统出错。若您担心系统出错，可以提前对系统备份。方法1. Windows设置按 Windows + I 键，打开Windows设置，再单击 更新和安全然后，在Windows更新处，单击“高级选项”。在高级选项中，您可以将“更新选项”中项目全部关闭，或者选择“暂停更新”，但此暂停更新至多只能暂停35天，达到暂停限制后需先获取新的更新，然后才能再次暂停更新。方法2. 关闭Windows Update服务按“Windows + R”键，打开运行对话框，并输入“services.msc”，然后再单击“确定”。在弹出的服务窗口中，找到“Windows Update”选项并双击打开它。在弹出的“Windows Update的属性”对话框中，将“启动类型”设置为“禁用”。然后再单击“恢复”，将图中框选的部分都设置为“无操作”，再单击“应用”和“确定”。方法3. 本地组策略编辑器另一种Win10关闭自动更新方法就是通过更改本地组策略编辑器中的“配置自动更新”和“删除使用所有Windows更新功能的访问权限”选项来关闭Win10自动更新。按“Windows + R”键，打开运行对话框，并输入“gpedit.msc”，然后再单击“确定”。在弹出的本地组策略编辑中，依次单击“计算机配置” > “管理模板” > “Windows组件” > “Windows更新”，然后找到“配置自动更新”并双击打开它。在弹出的“配置自动更新”窗口中，选择“已禁用”，再单击“确定”。然后在“Windows更新”页面找到“删除使用所有Windows更新功能的访问权限”，并双击打开它。在弹出的窗口中，再勾选“已启用”，然后单击“确定”。方法4. 任务计划程序您也可以通过任务计划程序，将“Schedule Start”禁用，以实现Win10自动更新的关闭。按“Windows + R”键，打开运行对话框，并输入“taskschd.msc”，然后再单击“确定”。在任务计划程序窗口中，跳转到该路径“任务计划程序库/Microsoft/Windows/WindowsUpdate”。然后，选中“Schedule Start”，并在“所选项”中单击“禁用”。方法5. 注册表编辑器还有一种Win10关闭自动更新方法就是通过注册表编辑器，来彻底关闭Win10自动更新。具体操作步骤如下：按“Windows + R”键，打开运行对话框，并输入“regedit.exe”，然后再单击“确定”，在弹出的窗口中再点击“是”。进入注册表编辑器后，跳转到以下路径，并在右侧找到“Start”键并双击打开它。路径：HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsoSvc在弹出的窗口中将“数值数据”改为“4”，并单击“确定”。然后再找到“FailureActions”键并双击进行编辑，将“00000010”和“00000018”行中的第五个数值，由原来的“01”改为“00”，再单击“确定”。

win10映射WebDAV,远程挂载webdav
type: item
date: 2022-07-09T22:26:00+08:00
description: 开启服务此电脑右键-管理-服务-WebClient 设为自动，停止服务修改注册表修改注册表使得WIN同时支持 http 和 https ，默认只支持http快速打开系统注册表,键盘组合键按下 win + R 然后输入以下命令按回车打开注册表regedit按照以下顺序依次打开到注册表的 BasicAuthLevel 文件： HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services WebClient Parameters BasicAuthLevel 把 BasicAuthLevel 值改成 2

切换Windows11右键菜单模式
type: item
date: 2022-02-09T10:29:00+08:00
description: echo off color 1f :start cls echo, echo Modify right menu mode:1.Win10 mode 2.Win11 mode 0.Exist echo, choice /c:120 /n /m:"Please choose mode!" if %errorlevel%==0 exit if %errorlevel%==2 goto cmd2 if %errorlevel%==1 goto cmd1 exit :cmd1 reg.exe add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve shutdown -l exit :cmd2 reg.exe delete "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}" /f shutdown -l exit

windows配置jdk环境变量
type: item
date: 2021-11-28T14:36:00+08:00
description: 1.打开系统环境变量配置2.添加 JAVA_HOMED:\Program Files\Java\jdk1.8.0_253.修改 Path%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;4.添加 CLASSPATH%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;5.验证java -versionjavajavac