Связать сценарии оболочки .SH с Bash в Windows 10

Если вы установили Bash в Ubuntu в Windows в Windows 10 версии 1607 и выше и хотите связать сценарии оболочки .SH с Bash, вот быстрое решение сценария.

Для доступа к пути файловой системы Windows в Bash вы используете следующий синтаксис или семантику:

/mnt/c/Windows/MyTasks.sh

Я написал небольшой VBScript, который преобразует путь к файлу Windows, такой как C:\Windows\MyTasks.sh, * Путь к файловой системе * NIX. Затем скрипт запускает Bash, передавая путь к файлу * NIX в качестве аргумента. Этот сценарий можно связать с типами файлов .SH, используя предоставленное здесь редактирование реестра.

Скачать

Скачайте bash_sh_assoc.zip, разархивируйте и запустите прилагаемый файл REG. Затем переместите файл скрипта bash.vbs в каталог Windows. Это связывает типы файлов .SH с файлом сценария bash.vbs.

Содержимое файла Vbscript Bash.vbs

If WScript.arguments.count  0 then
sSHfile = WScript.Arguments(0)
If LCase(Right(sSHfile, 3)) = ".sh" Then
Dim WshShell: Set WshShell = WScript.CreateObject("Wscript.Shell")
PathArr = Split(sSHfile, ":")
sSHfile = "/mnt/" & LCase(PathArr(0)) & PathArr(1)
sSHfile = Replace(sSHfile,"\","/")
WshShell.Run "%systemroot%\system32\bash.exe " & """" & sSHfile  & """",,True
Set WshShell = Nothing
End If
End If

Содержимое файла REG

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.sh]
@="shfile"
[HKEY_CLASSES_ROOT\shfile]
@="SH Script File"
[HKEY_CLASSES_ROOT\shfile\defaulticon]
@="%USERPROFILE%\\AppData\\Local\\lxss\\bash.ico"
[HKEY_CLASSES_ROOT\shfile\shell\open\command]
@="wscript.exe \"C:\\Windows\\bash.vbs\" \"%1\""

Связанный пост

Добавить Bash в контекстное меню для папок в Windows 10

Ссылка на основную публикацию
Adblock
detector