2016-04-21 14 views
1

Ich habe Probleme, einen Windows-Pfad in den cygwin-Stil Linux-Pfad zu konvertieren. C: \ Pfad \ zu \ Datei wird zum Beispiel/cygdrive/c/Pfad/zu/Datei sein. Ich habe alles außer dem großgeschriebenen Laufwerksbuchstaben, der aus dem Pfad in Kleinbuchstaben gezogen wird. Die Verbindung jeder für diese Fragen gibt, ist:Konvertieren von Char in Kleinbuchstaben im Batch

http://www.robvanderwoude.com/battech_convertcase.php

und die for-Schleife unter "SET, Take Two" schien die am besten geeignete. Das ist, was ich habe, so weit:

@ECHO OFF 
SETLOCAL ENABLEDELAYEDEXPANSION 

SET CWRSYNCHOME=%~dp0 

echo the windows path is %CWRSYNCHOME% 
for /f "tokens=1,2 delims=:" %%a in ("%CWRSYNCHOME%") do (
set "manip1=%%a" 
set "manip2=%%b" 
echo starts as /cygdrive/!manip1!!manip2:\=/! 
FOR %%i IN ("A=a" "B=b" "C=c" "D=d" "E=e" "F=f" "G=g" "H=h" "I=i" "J=j" "K=k" "L=l" "M=m" "N=n" "O=o" "P=p" "Q=q" "R=r" "S=s" "T=t" "U=u" "V=v" "W=w" "X=x" "Y=y" "Z=z") DO SET "manip1=%manip1:!%%i!%"&echo doing: "manip1=%manip1:!%%i!%"&echo now its !manip1! 
set "CYGLIKEHOME=/cygdrive/!manip1!!manip2:\=/!" 
) 
echo the converted path is %CYGLIKEHOME% 
PAUSE 
GOTO :EOF 

Der Ausgang ich erhalte, ist:

the windows path is E:\cwRsync_5.5.0_x86_Free\SANDBOX\ 
starts as /cygdrive/E/cwRsync_5.5.0_x86_Free/SANDBOX/ 
the converted path is /cygdrive/ "manip1=" 
now its "manip1=" 
now its "manip1=" 
now its "manip1=" 
now its "manip1=" 
now its "manip1=" 
now its "manip1=" 
now its "manip1=" 
now its "manip1=" 
now its "manip1=" 
now its "manip1=" 
now its "manip1=" 
now its "manip1=" 
now its /cwRsync_5.5.0_x86_Free/SANDBOX/ 
Press any key to continue . . . 

gibt es eine bessere Art und Weise ein einzelnes Zeichen zu konvertieren in Kleinbuchstaben? Wenn nicht, können Sie sehen, was ich falsch mache, wenn ich CYGLIKEHOME einstelle?

Danke

+0

, warum Sie nicht cygpath für die Umwandlung verwenden? – matzeri

+1

[Hier sind einige andere mögliche Ideen] (http://stackoverflow.com/a/34723215/1683264). – rojo

Antwort

1

!%%i! überhaupt keinen Sinn macht.

%manip1:!%%i!% sollte !manip1:%%~i!

+0

Perfekt! Vielen Dank. – Drew

Verwandte Themen