web-dev-qa-db-ja.com

Windows 10のLinuxシェル(.sh)スクリプトをBashまたはWSLに関連付ける

ダブルクリックしてWindows 10で.sh linuxスクリプトを実行しようとした場合、デフォルトでそれをbash.exe(Ubuntu Bash for Windows 10)に割り当てた後、スクリプトが開かないことに気付くでしょう。

なぜ開かないのですか、どうすれば修正できますか?

5
Alex Sim

編集:レジストリキーと以下の情報は廃止されています、ここに提供されている新しいバージョンを参照してください: WindowsのUbuntuまたはLinux用のWindowsサブシステム(WSL)でBashを使用してファイルを.shスクリプトにドラッグアンドドロップできますか?

これは、単一のレジストリキーを編集することで実行できます(追加機能の場合はそれ以上)。

もちろん、.regファイル(実際には3つの圧縮されたregファイル)をリンクして、回避策を(アイコンの関連付けと(オプションで)nano編集イネーブラーと共に)すばやくインストールします。レジストリを自分で編集する必要はありません。ダウンロードしてインストールすると、手順1のみに従う必要があります。

FILE(ステップ1のみに従い、ダウンロードしてインストールします): http://www.mediafire.com/file/r5uxk9c0hhucvt9/ShellBashScriptOpen_v3.rar

しかし、あなたの健康的な不信を満足させるために、ここであなたがそれを自分で行う方法があります:

1).shファイルのデフォルトプログラムとしてbash.exeを設定する

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')\""
7
Alex Sim