Оскільки Windows 10 досі не надав цю функцію (ні перетягування до .sh) за замовчуванням, я вирішив зробити ключ реєстру, який робить саме це;
Ви зможете правильно відкрити .sh файл після його прив’язки до bash.exe; крім того, ви можете перетягнути файли до скрипту .sh, щоб передати їх як параметри.
Ви можете завантажити ключ тут:
http://www.mediafire.com/file/8lqd1v693uj1g6t/ShellBashScriptOpen_v7.rar
Ключ також дає можливість запускати скрипт у підвищеному режимі (опція правої кнопки миші - як адміністратор Windows, так і Linux суперпользователь), тоді як додатковий (необов'язковий) клавіша дозволяє правою кнопкою миші> редагувати з нано
Пам'ятайте, що ви повинні встановити bash.exe як програму за замовчуванням, щоб відкрити .sh файли, щоб застосувати ці зміни (виконуваний шлях - C: /Windows/System32/bash.exe)
Основний ключ реєстру виконує такий сценарій (будучи ключем reg, запам'ятайте \ "стає", \ $ стає $, \\ стає \ і %% стає%):
#This makes bash.exe silently execute the command between quotes (whole code)
"%SYSTEMROOT%\System32\bash.exe" -c "
#Parses the dragged file paths from Windows paths to unix paths
path_param=\$(echo \"%*\" | sed 's/[[:space:]]\\([A-Z]:\\)/\\n\\1/g' | sed 's/[A-Z]:/\\/mnt\\/\\L&/g' | tr '\\\\' '\\/'\');
mapfile -t path_param <<< \"\$path_param\";
path_param=(\"\${path_param[@]//:}\");
#Same, but with the .sh script path
path_exec=\$(echo \"%l\" | sed 's/[[:space:]]\\([A-Z]:\\)/\\n\\1/g' | sed 's/[A-Z]:/\\/mnt\\/\\L&/g' | tr '\\\\' '\\/'\');
path_exec=\"\${path_exec//:}\";
#Removes the wole path (leaving only the file name) if the parameters are in the same directory of the script
if [[ \"\${path_param%%\\/*}\" -ef \"\${path_exec%%\\/*}\" ]];
then path_param=(\"\${path_param[@]/#\${path_param%%\\/*}\\/}\");
fi;
#Sets working directory to the folder where the script is located
cd \"\${path_exec%%\\/*}\";
#Executes script with or without parameters
if [[ \$path_param == \"\" ]];
then \"\$path_exec\";
else \"\$path_exec\" \"\${path_param[@]/#\${path_exec%%\\/*}\\/}\";
fi;
#Leaves WSL console open after the .sh script finishes executing
cd ~; bash; "
ОРИГІНАЛЬНА ПОСТА: Чи можна перетягувати файли до скрипту .sh за допомогою Bash on Ubuntu в Windows або підсистеми Windows для Linux (WSL)?