イントロ
WSL(Windows Subsystem for Linux)って使っていますか??
最高に便利ですよね!
とはいえ,CLIでいろいろ操作するのめんどくさくなってくることもあるかと思います.
そういうときは,batファイルからbashを呼び出すようにすればよいのですが,めんどうなのはパスの扱いです.
パス変換方法
そんなときに使えるのが下のスニペット
set WINPATH=C:\Users\mu-777\Desktop\test.txt
set WSLPATH=%WINPATH:C:=/mnt/c%
set WSLPATH=%WSLPATH:\=/%
echo %WSLPATH%
# /mnt/c/Users/mu-777/Desktop/test.txt
-
WINPATH
にwindowsのパスを入れ, -
C:
を/mnt/c
に置換してWSLPATH
に入れ, - セパレータを
\
から/
に変換する
という手順で,windows環境のパスをWSL(=linux)のパスに変換でき,
linux側で扱えるようになります.
具体的な使い方
これを応用すれば,例えば
converter.bat
rem @echo off
set INWINPATH=%1
set INWSLPATH=%INWINPATH:C:=/mnt/c%
set INWSLPATH=%INWSLPATH:\=/%
set OUTWINPATH=%~dp1
set OUTWSLPATH=%OUTWINPATH:C:=/mnt/c%
set OUTWSLPATH=%OUTWSLPATH:\=/%
C:\Windows\System32\bash.exe -i ~/converter.bash %INWSLPATH% %OUTWSLPATH%
rem %pause
というconverter.bat
ファイルを作ると、
windows環境にあるファイルをこのconverter.bat
にD&Dするだけで,
同じフォルダにconverter.bash
で変換されたファイルができちゃいます.
ffmpegとかwindowsで扱うのめんどいなーと思ってたものとか,今まで作ってきたLinux環境スクリプトがあれば
このbatから呼び出せるようにするだけで,windowsのGUI内だけで完結したlinux処理ができますよ
まとめ
特にtablet環境だと,キーボード使うのだるい+D&Dがちょーカンタンの"こうかばつくんだ"状態なので超オススメです.
Enjoy WSL!