WSLでのstartコマンド簡易ヘルパースクリプト

● WSL(Windows Subsystem for Linux)から コマンドプロンプト(cmd.exe)の内部コマンド start を実行する簡易的なヘルパー。引数を wslpath コマンドで変換して cmd.exe に渡す。
require: WSL & Ubuntu or etc…

#!/bin/sh
#filename: wslstart.sh 
#修正:2018/09/17
#修正:2019/02/23 (スペースが入っているパスを指定するときの不具合修正)
cmd=$(which cmd.exe)
wpath=$(wslpath -w -a "$1" 2> /dev/null)
if [ $? -eq 0 ] ; then
  $cmd /c start "$wpath" "$wpath"
else
  echo \'$1\' can not convert to windows path
fi

※注意 startコマンドのオプション非対応。
※ 当然だけど、rootfs 内のディレクトリは wslpath コマンドでエラーになり、パス変換できない。
※ May 2019 update (Windows10 1903) から rootfs 内であってもWindows側からアクセスできるようになってます。

使用例)
■カレントディレクトリのフォルダーウィンドウを開く

> wslstart.sh .

■ファイル等を開く

> wslstart.sh hogehoge.docx
> wslstart.sh hogehoge.txt