Hvordan kan en Windows-sti som "C:\some path\file.avi" konverteres til en sti som "/mnt/c/some\ path/file.avi", som Windows Ubuntu Bash kan forstå, når den bruges i et batch script?
For at konvertere en Windows-sti til en Ubuntu Bash-sti i et batch script, skal du erstatte backslashes med forward slashes, tilføje "/mnt/" præfikset og håndtere mellemrum korrekt.
Konvertering af Windows-sti til Ubuntu Bash-sti i et Batch Script
For at konvertere en Windows-sti som "C:\some path\file.avi" til en sti, som Windows Ubuntu Bash kan forstå, som "/mnt/c/some\ path/file.avi", kan du følge disse trin i et batch script:
- Erstat backslashes med forward slashes: Windows-stier bruger backslashes (\), mens Unix-baserede systemer som Ubuntu Bash bruger forward slashes (/).
- Tilføj "/mnt/" præfikset: Ubuntu Bash på Windows mount'er Windows-drev under "/mnt/". For eksempel bliver "C:" til "/mnt/c".
- Håndter mellemrum: Mellemrum i stien skal enten undgås eller håndteres korrekt ved at bruge escape-tegn (\) eller ved at omslutte stien i anførselstegn.
Her er et eksempel på et batch script, der udfører denne konvertering:
@echo off
setlocal enabledelayedexpansion
rem Input Windows path
set "win_path=C:\some path\file.avi"
rem Convert drive letter to /mnt format
set "bash_path=!win_path:C:=/mnt/c!"
rem Replace backslashes with forward slashes
set "bash_path=!bash_path:\=/!"
rem Handle spaces by escaping them
set "bash_path=!bash_path: =\ !"
echo %bash_path%
endlocal
Forklaring af scriptet:
- setlocal enabledelayedexpansion: Aktiverer forsinket ekspansion, hvilket er nødvendigt for at kunne ændre variabler inden for en loop eller en blok.
- set "win_path=C:\some path\file.avi": Definerer den oprindelige Windows-sti.
- set "bash_path=!win_path:C:=/mnt/c!": Erstatter drevbogstavet med "/mnt/c".
- set "bash_path=!bash_path:\=/!": Erstatter backslashes med forward slashes.
- set "bash_path=!bash_path: =\ !": Håndterer mellemrum ved at escape dem.
- echo %bash_path%: Udskriver den konverterede sti.
- endlocal: Afslutter den forsinkede ekspansion.
Dette script vil konvertere "C:\some path\file.avi" til "/mnt/c/some\ path/file.avi", som kan bruges i Windows Ubuntu Bash.