2016-05-09 11 views
1

私は入力としてファイルをドラッグアンドドロップするようにユーザーに指示するbashスクリプトを持っています。そのパスをWindowsスタイルのパスに変換する必要がありますcygpathが変数と一貫性のない入力変換としてWindowsに変換する

echo -e "\nPlease drag and drop your input audio file into this window and hit Enter\n" 
read inputfile 

inputfilewin=$(cygpath -w -a "${inputfile}") 

echo "inputfile: $inputfile" 
echo "inputfilewin: $inputfilewin" 

これは、スペースのないパスに対して正常に動作しますが、私のボックスフォルダ同期は、このような応答を生成します:

C:\cygwin\home\jimbob\'\cygdrive\c\Users\jimbob\Box Sync\myscripts\testscript\6ch.wav' 

が、私はちょうど上で入力した場合に呼び出されている.EXEへの引数コマンドラインcygpath -w -aと同じファイルをドラッグ&ドロップして、正しいパスを取得します。

C:\Users\jimbob\Box Sync\myscripts\testscript\6ch.wav 

私はちょうどそれはあなたが必要とするどのように多くのエスケープに応じて、私は

答えて

0
$ echo $a 
/cygdrive/c/Program Files/Autodesk/DWG TrueView 2016 - English 

を必要とする方法を動作させることはできません助けてください:、返信用

$ cygpath -w "$(echo -n $a |sed -e 's/ /\ /g')" 
C:\Program Files\Autodesk\DWG TrueView 2016 - English 

$ cygpath -w "$(echo -n $a |sed -e 's/ /\\ /g')" 
C:\Program\ Files\Autodesk\DWG\ TrueView\ 2016\ -\ English 
+0

感謝をまだI 'C:\ cygwin \ home \ jsmit \ '\ cygdrive \ c \ Users \ jimbob \"スクリプトでこれを使用しています: 'inputfilewin = $(cygpath -w -a) $(echo -n $ inputfile | sed -e 's// \\/g') ")' – jwsmite

+0

'echo $ {inputfile}'の出力は何ですか? – matzeri

関連する問題