You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows 10下.sh文件误关联记事本,无法在CMD运行,如何修改?

修复Windows 10中.sh文件关联问题的解决方案

我帮你整理了几个社区验证过的靠谱方案,一步步操作就能搞定:

方法一:用命令提示符(CMD)快速重置关联

这是最直接的方式,不用碰复杂的注册表:

  1. 管理员身份打开CMD:右键点击开始菜单,选择「命令提示符(管理员)」或者「Windows终端(管理员)」
  2. 先恢复.sh文件的默认关联类型,输入命令:
    assoc .sh=sh_auto_file
    
  3. 接着设置用CMD执行.sh文件,输入:
    ftype sh_auto_file="C:\Windows\System32\cmd.exe" /c "%1" %*
    
    要是你习惯用WSL运行Linux风格的.sh脚本,把上面的命令改成这个就行:
    ftype sh_auto_file="C:\Windows\System32\wsl.exe" "%1" %*
    
  4. 关闭CMD,双击.sh文件试试,应该就能正常在CMD/WSL里运行了。

方法二:通过注册表编辑器修复(适合关联残留严重的情况)

如果命令行方法没生效,可能是注册表有残留,手动调整一下:

  1. Win+R,输入regedit打开注册表编辑器
  2. 导航到HKEY_CLASSES_ROOT\.sh,右键点击「默认」值,修改为sh_auto_file(如果原来不是这个的话)
  3. 接着导航到HKEY_CLASSES_ROOT\sh_auto_file\shell\open\command,把「默认」值改成:
    "C:\Windows\System32\cmd.exe" /c "%1" %*
    
    同样,用WSL的话就改成"C:\Windows\System32\wsl.exe" "%1" %*
  4. 关闭注册表,重启资源管理器(或者直接重启电脑),关联就生效了。

解决「无法删除关联/不能直接关联CMD」的问题

Windows确实不让直接删除文件关联,也没法在「打开方式」里直接选CMD(因为CMD不是常规的关联程序选项),但用这两个技巧就能绕开限制:

  • 要是之前的关联残留顽固,先在管理员CMD里输入assoc .sh=(注意末尾是空的),先清空当前的.sh关联,再重新执行方法一里的assocftype命令
  • 要是右键「打开方式」里还留着记事本的选项,打开注册表编辑器,导航到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.sh\OpenWithList,删除里面对应记事本的条目(比如notepad.exe相关的键)就行。

小提醒

确保你的.sh脚本本身是有效的:如果是CMD脚本,里面要写CMD能识别的命令;如果是Linux脚本,记得用WSL的关联方式,不然CMD可能执行不了哦。

内容的提问来源于stack exchange,提问作者Mauricio Derbez del Pino

火山引擎 最新活动