我有一个bash脚本,提示用户将文件作为输入拖放,然后我需要将该路径转换为Windows样式路径,以便我可以将其用作正在调用的.exe的参数:
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"
这适用于没有空格的路径,但我的Box Sync文件夹会产生如下响应:
C:\cygwin\home\jimbob\'\cygdrive\c\Users\jimbob\Box Sync\myscripts\testscript\6ch.wav'
但如果我只是在命令行上键入cygpath -w -a并拖放同一个文件我会找到正确的路径:
C:\Users\jimbob\Box Sync\myscripts\testscript\6ch.wav
请帮助我无法让它工作我需要的方式
答案 0 :(得分: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