J'ai écrit un fichier bat pour faire cela. Il suffit de placer le fichier à l'endroit où vous travaillez ou de l'ajouter à votre chemin (ou simplement de le placer au-dessus de votre code, ce qui serait plus facile à travailler). N'oubliez pas d'assigner d'abord "variable" au chemin de votre fichier (si vous utilisez un fichier séparé, essayez d'utiliser les paramètres).
Ce que fait le code :
1) Obtenez la première lettre du chemin, qui est le lecteur.
2) Retirez les deux premières lettres.
3) Changez les barres obliques.
4) C'est la partie la plus délicate : puisque Linux est sensible à la casse, nous devons convertir les lettres majuscules en minuscules. Faites-le en faisant correspondre chaque lettre (dites-moi s'il y a une meilleure méthode). Vous pouvez également supprimer les lettres de lecteur inutiles, puisque vous n'avez probablement pas plus de dix lecteurs.
5) Combinez le tout pour obtenir la chaîne finale.
Le résultat :
Entrée :
E:\myfiles\app1\data\file.csv
Sortie (avec les guillemets) :
"/mnt/e/myfiles/app1/data/file.csv"
Le code est le suivant :
@echo OFF
set "variable=E:\myfiles\app1\data\file.csv"
set "drive=%variable:~0,1%"
set variable=%variable:~2%
set "variable=%variable:\=/%"
if %drive%==A set "drive=a"
if %drive%==B set "drive=b"
if %drive%==C set "drive=c"
if %drive%==D set "drive=d"
if %drive%==E set "drive=e"
if %drive%==F set "drive=f"
if %drive%==G set "drive=g"
if %drive%==H set "drive=h"
if %drive%==I set "drive=i"
if %drive%==J set "drive=j"
if %drive%==K set "drive=k"
if %drive%==L set "drive=l"
if %drive%==M set "drive=m"
if %drive%==N set "drive=n"
if %drive%==O set "drive=o"
if %drive%==P set "drive=p"
if %drive%==Q set "drive=q"
if %drive%==R set "drive=r"
if %drive%==S set "drive=s"
if %drive%==T set "drive=t"
if %drive%==U set "drive=u"
if %drive%==V set "drive=v"
if %drive%==W set "drive=w"
if %drive%==X set "drive=x"
if %drive%==Y set "drive=y"
if %drive%==Z set "drive=z"
set "variable=/mnt/%drive%%variable%"
echo "%variable%"
@echo ON