Aby to zrobić, napisałem plik nietoperza. Po prostu umieść plik gdziekolwiek pracujesz lub dodaj go do swojej ścieżki (lub po prostu umieść go nad kodem, co byłoby łatwiejsze do pracy). Pamiętaj, aby najpierw przypisać „zmienną” do ścieżki pliku (jeśli używasz osobnego pliku, spróbuj użyć parametrów).
Co robi kod:
1) Uzyskaj pierwszą literę ścieżki, którą jest dysk.
2) Usuń pierwsze dwie litery.
3) Zmień ukośniki.
4) Jest to trudna część: ponieważ Linux rozróżnia małe i duże litery, musimy przekonwertować wielką literę dysku na małe litery. Zrób to, dopasowując każdy z nich (powiedz mi, czy jest lepszy sposób). Możesz także usunąć niepotrzebne litery dysków, ponieważ prawdopodobnie nie masz więcej niż dziesięć dysków.
5) Połącz wszystko, aby dać końcowy ciąg.
Wynik:
Wejście:
E:\myfiles\app1\data\file.csv
Dane wyjściowe (ze znakami cudzysłowu):
"/mnt/e/myfiles/app1/data/file.csv"
Kod jest następujący:
@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:
z/mnt/c
(potencjalnie dla innych liter dysków, zbyt), prawda?