2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

batファイルでlinuxパスとWindowsパスを変換する方法

Posted at

イントロ

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
  1. WINPATHにwindowsのパスを入れ,
  2. C:/mnt/cに置換してWSLPATHに入れ,
  3. セパレータを\から/に変換する

という手順で,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!

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?