如果您曾尝试在 Windows 10 上双击运行 .sh Linux 脚本,在默认将其分配给 bash.exe(适用于 Windows 10 的 Ubuntu Bash)后,您很可能会注意到它无法打开。
为什么它打不开?我该如何解决这个问题?
答案1
编辑:下面的注册表项和信息已过时,请参阅此处提供的新版本:我可以使用 Windows 上的 Ubuntu 或 Windows Subsystem for Linux (WSL) 上的 Bash 将文件拖放到 .sh 脚本中吗?
这可以通过编辑单个注册表项(或编辑多个注册表项以获得额外功能)来完成。
我当然会链接一个 .reg 文件(实际上是三个压缩的 reg 文件)来快速安装解决方法(以及图标关联和(可选)nano 编辑启动器),而无需自己编辑注册表,如果您下载并安装它,您只需按照步骤 1 操作即可;
文件(仅按照步骤1,然后下载并安装):http://www.mediafire.com/file/r5uxk9c0hhucvt9/ShellBashScriptOpen_v3.rar
但为了消除你的健康怀疑,你可以自己做以下事情:
。
1)将 bash.exe 设置为 .sh 文件的默认程序
只需右键单击 sh 文件,转到属性,找到“打开方式”,更改 > more_apps > find_an_app_in_this_PC 并选择 C:\Windows\System32\bash.exe;
申请后您就可以开始了。
。
2)实际双击打开键
使用 regedit 创建以下注册表项
HKEY_CLASSES_ROOT\Applications\bash.exe\shell\open\command
a) 如果你想在脚本完成后保持 bash 打开
将(默认)值设置为
"C:\Windows\System32\bash.exe" -c " \"./$(grep -oE '[^\\]+$' <<< '%L')\"; cd ~; bash;"
b) 如果你想在脚本完成后关闭 bash
将(默认)值设置为
"C:\Windows\System32\bash.exe" -c " \"./$(grep -oE '[^\\]+$' <<< '%L')\";"
。
3)以管理员身份打开选项
使用 regedit 创建以下注册表项
HKEY_CLASSES_ROOT\Applications\bash.exe\shell\runas\command
a) 如果你想在脚本完成后保持 bash 打开
将(默认)值设置为
"C:\Windows\System32\bash.exe" -c " sudo bash \"$(grep -oE '[^\\]+$' <<< '%L')\"; cd ~; bash"
b) 如果你想在脚本完成后关闭 bash
将(默认)值设置为
"C:\Windows\System32\bash.exe" -c " sudo bash \"$(grep -oE '[^\\]+$' <<< '%L')\";"
。
4)分配默认图标键(可选[但更酷])
创建以下注册表项
HKEY_CLASSES_ROOT\Applications\bash.exe\DefaultIcon
并将(默认)值设置为
%USERPROFILE%\AppData\Local\lxss\bash.ico,0
。
5)添加右键单击>编辑选项(使用 nano 编辑器)(可选)
创建以下注册表项
HKEY_CLASSES_ROOT\Applications\bash.exe\shell\edit\command
并将(默认)值设置为
"C:\Windows\System32\bash.exe" -c "nano -miST 4 \"$(grep -oE '[^\\]+$' <<< '%L')\""