win 右键--新建增加创建md文件,创建的文件名为README.md
我来帮你实现在Windows右键菜单中创建README.md文件的功能。有几种方法可以实现:
add_md_new.reg,内容如下:RegWindows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.md\ShellNew] "NullFile"="" "FileName"="README.md"
add_md_context_menu.bat:Batch@echo off REG ADD "HKEY_CLASSES_ROOT\.md\ShellNew" /v "NullFile" /t REG_SZ /d "" /f REG ADD "HKEY_CLASSES_ROOT\.md\ShellNew" /v "FileName" /t REG_SZ /d "README.md" /f echo MD文件右键新建菜单已添加! pause
Powershell# 以管理员身份运行PowerShell,执行以下命令 $path = "HKCU:\Software\Classes\.md\ShellNew" New-Item -Path $path -Force | Out-Null Set-ItemProperty -Path $path -Name "NullFile" -Value "" Set-ItemProperty -Path $path -Name "FileName" -Value "README.md" Write-Host "README.md右键菜单已添加!" -ForegroundColor Green
README.md设置完成后:
README.md的文件如果需要移除这个功能,创建一个 remove_md_new.reg 文件:
RegWindows Registry Editor Version 5.00 [-HKEY_CLASSES_ROOT\.md\ShellNew]
推荐使用方法一,最简单直接。设置完成后,你就能在右键菜单中快速创建README.md文件了!
REG ADD "HKEY_CLASSES_ROOT\.md\ShellNew" /v "NullFile" /t REG_SZ /d "" /f REG ADD "HKEY_CLASSES_ROOT\.md\ShellNew" /v "FileName" /t REG_SZ /d "README.md" /f 管理员方式执行完,右键没有显示
如果执行后右键没有显示,可能是以下几个原因。让我帮你一步步排查和解决:
Windows 10/11 有时需要修改用户级注册表:
Batch@echo off :: 尝试用户级注册表路径 REG ADD "HKCU\Software\Classes\.md\ShellNew" /v "NullFile" /t REG_SZ /d "" /f REG ADD "HKCU\Software\Classes\.md\ShellNew" /v "FileName" /t REG_SZ /d "README.md" /f :: 同时设置显示名称 REG ADD "HKCU\Software\Classes\.md" /v "PerceivedType" /t REG_SZ /d "text" /f REG ADD "HKCU\Software\Classes\.md" /ve /t REG_SZ /d "markdownfile" /f REG ADD "HKCU\Software\Classes\markdownfile" /ve /t REG_SZ /d "Markdown Document" /f echo 设置完成,请重启文件资源管理器或注销重新登录。 pause
创建一个完整的 add_md_menu.bat 文件:
Batch@echo off echo 正在添加MD文件右键新建菜单... echo. :: 设置.md文件类型关联 REG ADD "HKCU\Software\Classes\.md" /ve /t REG_SZ /d "markdownfile" /f :: 设置文件类型显示名称 REG ADD "HKCU\Software\Classes\markdownfile" /ve /t REG_SZ /d "Markdown Document" /f :: 添加ShellNew项 REG ADD "HKCU\Software\Classes\.md\ShellNew" /v "NullFile" /t REG_SZ /d "" /f REG ADD "HKCU\Software\Classes\.md\ShellNew" /v "FileName" /t REG_SZ /d "README.md" /f :: 设置文件类型图标(可选) REG ADD "HKCU\Software\Classes\markdownfile\DefaultIcon" /ve /t REG_SZ /d "%SystemRoot%\System32\imageres.dll,-102" /f echo. echo 设置完成!正在重启文件资源管理器... echo. :: 重启文件资源管理器使更改生效 taskkill /f /im explorer.exe >nul 2>&1 start explorer.exe echo. echo 右键新建菜单已添加!现在可以在右键菜单中看到"Markdown Document"选项。 echo 创建的文件将命名为 README.md pause
Powershell# 以管理员身份运行 $ErrorActionPreference = "Stop" # 设置.md关联 New-Item -Path "HKCU:\Software\Classes\.md" -Force | Out-Null Set-ItemProperty -Path "HKCU:\Software\Classes\.md" -Name "(Default)" -Value "markdownfile" # 设置文件类型显示名称 New-Item -Path "HKCU:\Software\Classes\markdownfile" -Force | Out-Null Set-ItemProperty -Path "HKCU:\Software\Classes\markdownfile" -Name "(Default)" -Value "Markdown Document" # 添加ShellNew New-Item -Path "HKCU:\Software\Classes\.md\ShellNew" -Force | Out-Null Set-ItemProperty -Path "HKCU:\Software\Classes\.md\ShellNew" -Name "NullFile" -Value "" Set-ItemProperty -Path "HKCU:\Software\Classes\.md\ShellNew" -Name "FileName" -Value "README.md" # 重启文件资源管理器 Stop-Process -Name explorer -Force Start-Process explorer Write-Host "设置完成!" -ForegroundColor Green Write-Host "现在可以在右键菜单中看到'Markdown Document'选项" -ForegroundColor Yellow Read-Host "按回车键继续"
Win + R,输入 regedit 打开注册表编辑器HKEY_CURRENT_USER\Software\Classes\.mdShellNew 子项.md → 新建 → 项,命名为 ShellNewShellNew 中新建两个字符串值:
NullFile,值:(留空)FileName,值:README.md如果上述方法都不行,尝试这个强力脚本:
Batch@echo off echo 正在强制刷新系统图标和菜单缓存... :: 清除图标缓存 del /f /q "%localappdata%\IconCache.db" >nul 2>&1 del /f /q "%localappdata%\Microsoft\Windows\Explorer\iconcache*" >nul 2>&1 :: 清除缩略图缓存 del /f /q "%localappdata%\Microsoft\Windows\Explorer\thumbcache*" >nul 2>&1 :: 重建图标缓存 ie4uinit.exe -show :: 重启文件资源管理器 taskkill /f /im explorer.exe >nul 2>&1 start explorer.exe echo. echo 请等待几秒钟让系统重新加载... timeout /t 5 /nobreak >nul echo. echo 现在尝试右键查看是否有"Markdown Document"选项 pause
推荐先使用方案2的完整批处理脚本,它包含了所有必要的注册表项设置。
新建文件名不是README.md
如果新建的文件名不是README.md而是其他名称(如新建 Markdown Document.md),这是因为系统自动添加了"新建"前缀。让我帮你解决这个问题:
创建一个 add_md_fixed.bat 文件:
Batch@echo off echo 正在设置README.md右键新建菜单... echo. :: 创建模板文件 echo # README > "%USERPROFILE%\README.md.template" :: 设置.md文件类型 REG ADD "HKCU\Software\Classes\.md" /ve /t REG_SZ /d "markdownfile" /f REG ADD "HKCU\Software\Classes\markdownfile" /ve /t REG_SZ /d "Markdown Document" /f :: 使用Data项而不是FileName(避免系统自动重命名) REG ADD "HKCU\Software\Classes\.md\ShellNew" /v "Data" /t REG_SZ /d "# README" /f :: 或者使用Command方法 REG ADD "HKCU\Software\Classes\.md\ShellNew" /v "Command" /t REG_SZ /d "cmd /c copy \"%USERPROFILE%\README.md.template\" \"%%1\"" /f echo. echo 设置完成!正在重启文件资源管理器... taskkill /f /im explorer.exe >nul 2>&1 timeout /t 2 /nobreak >nul start explorer.exe echo. echo 现在右键新建的MD文件应该直接命名为README.md pause
创建一个 create_readme_md.bat:
Batch@echo off
echo 正在创建README.md右键菜单...
echo.
:: 1. 先设置基本的文件类型
REG ADD "HKCU\Software\Classes\.md" /ve /t REG_SZ /d "markdownfile" /f
REG ADD "HKCU\Software\Classes\markdownfile" /ve /t REG_SZ /d "Markdown Document" /f
:: 2. 创建模板文件
(
echo # README
echo.
echo This is a README file created from right-click menu.
echo.
) > "%TEMP%\readme_template.md"
:: 3. 使用Command方式创建文件(避免系统重命名)
REG ADD "HKCU\Software\Classes\.md\ShellNew" /v "Command" /t REG_EXPAND_SZ /d "cmd /c copy \"%TEMP%\readme_template.md\" \"%%1\"" /f
:: 4. 设置不显示"新建"前缀
REG ADD "HKCU\Software\Classes\.md\ShellNew" /v "NullFile" /t REG_SZ /d "" /f
echo.
echo 正在重启文件资源管理器...
taskkill /f /im explorer.exe >nul 2>&1
timeout /t 2 /nobreak >nul
start explorer.exe
echo.
echo 设置完成!右键新建的MD文件将直接命名为README.md
pause
创建一个 Set-ReadmeNew.ps1 文件:
Powershell# 以管理员身份运行 $templateContent = @" # README This is a README file created from right-click menu. ## Description Add your description here. ## Usage Explain how to use your project. "@ # 创建模板文件 $templatePath = "$env:TEMP\readme_template.md" $templateContent | Out-File -FilePath $templatePath -Encoding UTF8 # 设置注册表 $regPath = "HKCU:\Software\Classes\.md\ShellNew" # 删除现有的ShellNew项 Remove-Item -Path $regPath -Force -ErrorAction SilentlyContinue # 创建新的ShellNew项 New-Item -Path $regPath -Force | Out-Null # 使用Command方式(可以精确控制文件名) $command = "powershell -Command `"Copy-Item '$templatePath' -Destination '%1'`"" New-ItemProperty -Path $regPath -Name "Command" -PropertyType String -Value $command | Out-Null # 设置文件类型 New-Item -Path "HKCU:\Software\Classes\.md" -Force | Out-Null Set-ItemProperty -Path "HKCU:\Software\Classes\.md" -Name "(Default)" -Value "markdownfile" New-Item -Path "HKCU:\Software\Classes\markdownfile" -Force | Out-Null Set-ItemProperty -Path "HKCU:\Software\Classes\markdownfile" -Name "(Default)" -Value "Markdown Document" # 重启文件资源管理器 Stop-Process -Name explorer -Force Start-Sleep -Seconds 2 Start-Process explorer Write-Host "设置成功!" -ForegroundColor Green Write-Host "现在右键新建的MD文件将直接命名为README.md" -ForegroundColor Yellow Write-Host "注意:第一次创建时可能需要几秒钟时间" -ForegroundColor Cyan Read-Host "按回车键继续"
如果上述方法都不行,可以手动修改:
Win + R,输入 regeditHKEY_CURRENT_USER\Software\Classes\.md\ShellNewFileName 值(如果存在)Commandcmd /c echo # README > "%1"NullFile(留空)如果编程方法太复杂,可以使用这个工具:
cmd /c echo # README > "README.md"Windows 系统在创建新文件时,如果使用 FileName 注册表项,会自动添加"新建"前缀。要避免这个,我们需要:
Command 而不是 FileNameData 项直接写入内容设置完成后:
README.md 的文件推荐使用方法2或方法3,它们使用 Command 方式可以完全控制文件名和内容。
REG ADD "HKCU\Software\Classes\.md\ShellNew" /v "Data" /t REG_SZ /d "# README" /f 使用这命令创建文件名也还是默认的
你说得对,使用Data项创建的文件名仍然是默认的(如"新建 Markdown Document.md")。这是因为Windows系统对ShellNew的处理方式决定的。让我提供几个真正有效的解决方案:
创建一个 fix_md_new.bat 文件:
Batch@echo off echo 正在修复README.md右键新建问题... echo. :: 删除现有的ShellNew项(如果存在) REG DELETE "HKCU\Software\Classes\.md\ShellNew" /f 2>nul :: 创建新的ShellNew项 REG ADD "HKCU\Software\Classes\.md\ShellNew" /v "Command" /t REG_SZ /d "cmd.exe /c echo # README ^& echo. ^& echo Created via right-click menu. > \"README.md\"" /f :: 设置文件类型显示 REG ADD "HKCU\Software\Classes\.md" /ve /t REG_SZ /d "markdownfile" /f REG ADD "HKCU\Software\Classes\markdownfile" /ve /t REG_SZ /d "Markdown Document" /f echo 设置完成!重启文件资源管理器... taskkill /f /im explorer.exe >nul 2>&1 timeout /t 2 /nobreak >nul start explorer.exe echo. echo 现在右键新建应该直接创建README.md文件 pause
创建一个 create_readme.vbs 文件:
VBScriptSet fso = CreateObject("Scripting.FileSystemObject") Set shell = CreateObject("WScript.Shell") ' 获取当前目录 currentFolder = shell.CurrentDirectory ' 创建README.md文件 filePath = currentFolder & "\README.md" Set file = fso.CreateTextFile(filePath, True) file.WriteLine "# README" file.WriteLine "" file.WriteLine "Created via right-click menu." file.Close ' 可选:打开文件 ' shell.Run "notepad.exe " & filePath
然后创建批处理文件来设置右键菜单:
Batch@echo off echo 设置右键创建README.md... :: 复制VBScript到系统目录 copy "create_readme.vbs" "%APPDATA%\create_readme.vbs" /y >nul :: 设置注册表 REG ADD "HKCU\Software\Classes\.md\ShellNew" /v "Command" /t REG_SZ /d "wscript.exe \"%APPDATA%\create_readme.vbs\"" /f :: 设置文件类型 REG ADD "HKCU\Software\Classes\.md" /ve /t REG_SZ /d "markdownfile" /f REG ADD "HKCU\Software\Classes\markdownfile" /ve /t REG_SZ /d "Markdown Document" /f echo 重启文件资源管理器... taskkill /f /im explorer.exe >nul 2>&1 timeout /t 2 /nobreak >nul start explorer.exe echo 完成! pause
创建一个 Set-ReadmeNewMenu.ps1 文件:
Powershell# 以管理员身份运行 # 1. 创建PowerShell脚本 $psScript = @' # 获取当前位置 $currentPath = Get-Location $readmePath = Join-Path $currentPath "README.md" # 创建README.md文件 @" # README Created via right-click menu. ## Description Add your project description here. ## Usage Explain how to use your project. "@ | Out-File -FilePath $readmePath -Encoding UTF8 # 可选:打开文件 # Start-Process notepad $readmePath '@ # 保存脚本 $scriptPath = "$env:APPDATA\CreateReadme.ps1" $psScript | Out-File -FilePath $scriptPath -Encoding UTF8 # 2. 设置注册表 $regPath = "HKCU:\Software\Classes\.md\ShellNew" # 删除现有项 Remove-Item -Path $regPath -Force -ErrorAction SilentlyContinue # 创建新项 New-Item -Path $regPath -Force | Out-Null # 设置Command(使用PowerShell) $command = "powershell.exe -WindowStyle Hidden -ExecutionPolicy Bypass -File `"$scriptPath`"" New-ItemProperty -Path $regPath -Name "Command" -PropertyType String -Value $command | Out-Null # 3. 设置文件类型 New-Item -Path "HKCU:\Software\Classes\.md" -Force | Out-Null Set-ItemProperty -Path "HKCU:\Software\Classes\.md" -Name "(Default)" -Value "markdownfile" New-Item -Path "HKCU:\Software\Classes\markdownfile" -Force | Out-Null Set-ItemProperty -Path "HKCU:\Software\Classes\markdownfile" -Name "(Default)" -Value "Markdown Document" # 4. 重启文件资源管理器 Write-Host "正在重启文件资源管理器..." -ForegroundColor Yellow Stop-Process -Name explorer -Force Start-Sleep -Seconds 2 Start-Process explorer Write-Host "`n设置成功!" -ForegroundColor Green Write-Host "现在右键 -> 新建 -> Markdown Document 将直接创建 README.md" -ForegroundColor Yellow Write-Host "注意:第一次创建可能需要几秒钟" -ForegroundColor Cyan Read-Host "按回车键继续"
创建一个 setup_readme.bat 文件:
Batch@echo off echo 设置README.md右键创建功能... :: 创建批处理模板文件 ( echo @echo off echo echo # README > "README.md" echo echo. >> "README.md" echo echo Created via right-click menu. >> "README.md" echo echo. >> "README.md" echo echo Date: %%date%% %%time%% >> "README.md" ) > "%TEMP%\create_readme.bat" :: 设置注册表 REG ADD "HKCU\Software\Classes\.md\ShellNew" /v "Command" /t REG_SZ /d "cmd.exe /c \"%TEMP%\create_readme.bat\"" /f :: 设置文件类型 REG ADD "HKCU\Software\Classes\.md" /ve /t REG_SZ /d "markdownfile" /f REG ADD "HKCU\Software\Classes\markdownfile" /ve /t REG_SZ /d "Markdown Document" /f echo 重启文件资源管理器... taskkill /f /im explorer.exe >nul 2>&1 timeout /t 2 /nobreak >nul start explorer.exe echo. echo 完成!现在右键新建MD文件将创建README.md pause
Batch@echo off
echo 设置自动重命名功能...
:: 创建自动重命名的VBS脚本
(
echo Set objShell = CreateObject("Shell.Application")
echo Set objFolder = objShell.Namespace(WScript.Arguments(0))
echo Set objFolderItem = objFolder.ParseName("新建 Markdown Document.md")
echo If Not objFolderItem Is Nothing Then
echo objFolderItem.Name = "README.md"
echo End If
) > "%APPDATA%\rename_readme.vbs"
:: 设置注册表
REG ADD "HKCU\Software\Classes\.md\ShellNew" /v "NullFile" /t REG_SZ /d "" /f
REG ADD "HKCU\Software\Classes\.md\ShellNew" /v "Command" /t REG_SZ /d "wscript.exe \"%APPDATA%\rename_readme.vbs\" \"%%1\"" /f
echo 重启文件资源管理器...
taskkill /f /im explorer.exe >nul 2>&1
timeout /t 2 /nobreak >nul
start explorer.exe
echo 完成!
pause
对于普通用户:使用方案1或方案4
对于需要更复杂功能:使用方案3(PowerShell)
README.md文件被创建如果还有问题,请告诉我你使用的是哪个Windows版本,我可以提供更针对性的解决方案。