1

我有一个 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

请帮助我只是无法让它按我的需要工作

4

1 回答 1

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
于 2016-05-10T05:29:11.107 回答