wisch
Goto Top

Batch-Variable zu Lower Case (Kleinbuchstaben) wandeln

Hallo.

Ich habe im Batch-Script eine Variable deren Inhalt ich in Kleinbuchstaben wandeln muß, nur wie?

Ich habe es so (ergoogelter Code) versucht, funktioniert aber nicht?

set variable=C:\Inhalt\mit\Großbuchstaben
for %%a 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 (
    call set %variable%=%%%variable%:%%~a%%
echo %variable%

Mit diesem Code bekomme ich eine leere Variable zurück.
Wie bekomme ich es hin?

Danke für Eure Hilfe,
WISch

Content-Key: 158384

Url: https://administrator.de/contentid/158384

Printed on: April 19, 2024 at 21:04 o'clock

Member: bastla
bastla Jan 11, 2011 at 14:50:33 (UTC)
Goto Top
Hallo WiSch!

Sollte so gehen:
setlocal enabledelayedexpansion
set variable=C:\Inhalt\mit\Großbuchstaben 

for %%a 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 "variable=!variable:%%~a!"  
)
echo %variable%
... und mit einem
chcp 1252 >nul
vorneweg klappt's auch mit den Sonderzeichen ...
Wenn Du auch hier nix gegen ein wenig VBS einzuwenden hättest, könntest Du es auch so versuchen:
set variable=C:\Inhalt\mit\Großbuchstaben 

set C=%temp%\Convert2Lower.vbs
>%C% echo WScript.Echo LCase(WScript.Arguments(0))

for /f "delims=" %%i in ('cscript //nologo %C% "%variable%"') do set "variable=%%i"  
echo %variable%
Grüße
bastla
Member: WiSch
WiSch Jan 11, 2011 at 15:54:08 (UTC)
Goto Top
Hallo bastla.

Und wieder mal meinen Dank für die schnelle und funktionierende Hilfe!

Grüße,
WiSch
Member: Boory01
Boory01 May 15, 2018 at 07:36:51 (UTC)
Goto Top
Hallo Bastla,

ich weiß, der Thread ist schon älter... face-smile

Zuerst einmal, die Lösung hat mir super weiter geholfen - vielen Dank dafür!!!

Allerdings habe ich jetzt folgendes Problem...

Ich übergebe ein und die selbe Variable an mehrere Zeilen (REG ADD "HKLM\SOFTWARE...) und dabei MUSS diese in einigen Zeilen
groß geschrieben werden und dann in zwei Zeilen klein. DANACH möchte ich wieder auf groß umstellen, damit die Variable in der
Folge (etwas komplexere Batch-Datei) wieder in Großbuchstaben übergeben wird.

Wie kann ich nun nach den benötigten Einträgen die vorher gesetzte Änderung wieder rückgängig machen?

Schon mal vielen Dank und viele Grüße - Boory