自己写的一个将windows11中的记事本替换为Notepad3的批处理程序

Notepad3 下载地址

Notepad3

只需要将这个批处理保存到 Notepad3 的同一个文件夹下运行即可
把文件保存为 记事本替换工具.bat ,文件保存的字符集为 GBK,或者 GB2312都行
@echo off
setlocal EnableDelayedExpansion

:: 检查管理员权限
net session >nul 2>&1
if %errorlevel% neq 0 (
    echo 请以管理员身份运行此脚本!
    pause
    exit /b 1
)

:: 初始化路径
set "ScriptDir=%~dp0"
set "Notepad3Path=%ScriptDir%Notepad3.exe"
set "SystemNotepad=%SystemRoot%\System32\notepad.exe"
set "BackupNotepad=%SystemRoot%\System32\notepad_original.exe"

:: 主菜单
:menu
cls
echo ==============================
echo    记事本替换工具 (即时生效版)
echo ==============================
(echo 1. 替换记事本为 Notepad3
echo 2. 还原系统默认记事本
echo 3. 退出
echo ==============================)
set /p choice=请输入选项 (1-3): 

if "%choice%"=="1" goto replace
if "%choice%"=="2" goto restore
if "%choice%"=="3" exit /b 0
echo 无效选项,请重新输入!
pause
goto menu

:replace
:: 检查Notepad3是否存在
if not exist "%Notepad3Path%" (
    echo 错误:Notepad3.exe 未在当前目录找到!
    pause
    goto menu
)

:: 结束notepad进程
tasklist | find /i "notepad.exe" >nul && (
    taskkill /f /im notepad.exe >nul 2>&1
    if %errorlevel% neq 0 (
        echo 警告:无法结束进程,请手动关闭记事本!
        pause
    )
)

:: 备份原始文件(仅首次)
if exist "%SystemNotepad%" (
    if not exist "%BackupNotepad%" (
        echo 正在备份原始记事本...
        copy /y "%SystemNotepad%" "%BackupNotepad%" >nul || (
            echo 备份失败!错误代码: %errorlevel%
            pause
            goto menu
        )
    )
)

:: 获取所有权及权限
takeown /f "%SystemNotepad%" >nul
icacls "%SystemNotepad%" /grant "%username%:F" >nul
if %errorlevel% neq 0 (
    echo 权限获取失败!请检查管理员权限。
    pause
    goto menu
)

:: 文件替换
copy /y "%Notepad3Path%" "%SystemNotepad%" >nul
if %errorlevel% neq 0 (
    echo 文件替换失败!可能被系统保护锁定。
    echo 若为Windows 11,请先卸载新版记事本:
    echo winget uninstall "Windows Notepad"
    pause
    goto menu
)

:: 注册表修改
reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v "Debugger" /t REG_SZ /d "\"%Notepad3Path%\" -z" /f >nul
assoc .txt=txtfile >nul
ftype txtfile="%Notepad3Path%" "%%1" >nul

:: 刷新系统设置使其立即生效
echo 正在刷新系统设置...
reg add "HKCU\Software\Microsoft\Windows\Shell\Associations" /v "UserChoiceIcons" /t REG_SZ /d "1" /f >nul
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt\UserChoice" /f >nul 2>&1
taskkill /f /im explorer.exe >nul 2>&1
start "" "explorer.exe"

echo 替换成功!已立即生效。
pause
goto menu

:restore
:: 检查备份文件
if not exist "%BackupNotepad%" (
    echo 错误:未找到备份文件 %BackupNotepad%
    echo 请手动从系统安装介质恢复 notepad.exe
    pause
    goto menu
)

:: 结束进程并获取权限
taskkill /f /im notepad.exe >nul 2>&1
takeown /f "%SystemNotepad%" >nul
icacls "%SystemNotepad%" /grant "%username%:F" >nul

:: 还原文件
copy /y "%BackupNotepad%" "%SystemNotepad%" >nul
if %errorlevel% neq 0 (
    echo 文件还原失败!错误代码: %errorlevel%
    pause
    goto menu
)

:: 归还系统权限
icacls "%SystemNotepad%" /setowner "NT SERVICE\TrustedInstaller" >nul 2>&1
icacls "%SystemNotepad%" /grant:r "NT SERVICE\TrustedInstaller:F" >nul

:: 清理注册表
reg delete "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /f >nul 2>&1

:: 重置文件关联
assoc .txt=txtfile >nul
ftype txtfile="%SystemRoot%\System32\notepad.exe" "%%1" >nul

:: 刷新系统设置使其立即生效
echo 正在刷新系统设置...
reg add "HKCU\Software\Microsoft\Windows\Shell\Associations" /v "UserChoiceIcons" /t REG_SZ /d "1" /f >nul
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt\UserChoice" /f >nul 2>&1
taskkill /f /im explorer.exe >nul 2>&1
start "" "explorer.exe"

echo 还原完成!已立即生效。
echo 注意:Windows 11用户可能需要从商店重新安装记事本
pause
goto menu
运行效果如下

自己写的一个将windows11中的记事本替换为Notepad3的批处理程序-20250630125736.png

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

− 3 = 6