Escribí un archivo bat para hacer esto. Simplemente coloque el archivo donde sea que esté trabajando o agréguelo a su ruta (o simplemente colóquelo sobre su código, lo que sería más fácil de trabajar). Recuerde asignar primero "variable" a su ruta de archivo (si está usando un archivo separado, intente usar parámetros).
Lo que hace el código:
1) Obtenga la primera letra de la ruta, que es la unidad.
2) Eliminar las dos primeras letras.
3) Cambiar las barras inclinadas.
4) Esta es la parte difícil: dado que Linux distingue entre mayúsculas y minúsculas, necesitamos convertir la letra de la unidad en mayúscula a minúscula. Haga esto haciendo coincidir cada uno (dígame si hay una mejor manera). También puede eliminar letras de unidad innecesarias, ya que probablemente no tenga más de diez unidades.
5) Combina todo para dar la cuerda final.
El resultado:
Entrada:
E:\myfiles\app1\data\file.csv
Salida (con las comillas):
"/mnt/e/myfiles/app1/data/file.csv"
El código es el siguiente:
@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
C:
con/mnt/c
(posiblemente también para otras letras de unidad), ¿verdad?