Prozentzeichen in Übergabeparameter
Hm, mein Problem ist schwierig zu beschreiben: ich will in einer Batch einen Liste mit Dateien und Verzeichnissen bearbeiten. In den Dateinamen können leider "!", "%", "&", und noch ein paar eklige Sonderzeichen auftauchen. Sagen wir mal, ich hätte folgende Dateien:
Bis her habe ich dann soetwas:
Die Ausgabe auf dem Bildschirm sieht so aus:
Gibt es einen Möglichkeit, wie ich die Prozentzeichen und den Text zwischen ihnen als Übergabeparameter retten kann? setlocal enabledelayedexpansion geht glaube ich nicht, weil ich dann ja meine "!" verliere.
"hallo.txt"
"test %20 blöd%.txt"
"test %genutztevariable%.txt"
@echo off
set "genutztevariable=Kommt in Dateien nie vor: * ? \"
::hier stimmt die Ausgabe
for /f "delims=" %%i IN ('dir /b') DO echo "%%~i"
echo ---
::hier verschwinden meine %, oder werden durch deren Inhalte ersetzt
for /f "delims=" %%i IN ('dir /b') DO call :handlefile "%%~i"
goto :end
:handlefile
echo "%~1"
::eigentliche Funktionen
goto :eof
:end
"hallo.txt"
"test %20 blöd%.txt"
"test %genutztevariable%.txt"
---
"hallo.txt"
"test 0 blöd.txt"
"test Kommt in Dateien nie vor: * ? \.txt"
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 102329
Url: https://administrator.de/forum/prozentzeichen-in-uebergabeparameter-102329.html
Ausgedruckt am: 23.12.2024 um 15:12 Uhr
4 Kommentare
Neuester Kommentar
Moin Ren,
versuche es in diesem Spezialfall (wenn Du weißt, dass die Dateinamen so aussehen könnten) so.
Ausgabe:
Grüße
Biber
versuche es in diesem Spezialfall (wenn Du weißt, dass die Dateinamen so aussehen könnten) so.
:: --------RenBsp.bat
@echo off & setlocal
::hier stimmt die Ausgabe
for /f "delims=" %%i IN ('dir /b') DO echo %%i
echo ---
::hier verschwinden meine % jetzt nicht mehr
for /f "delims=" %%i IN ('dir /b') DO set "thisfile="%%~i"" & call :handlefile
goto :end
:handlefile
Echo thisfile: %thisfile%
::eigentliche Funktionen ---- nimm %thisfile% statt %1
goto :eof
:end
>renbsp
renBsp.bat
test %20 blöd%.txt
test.txt
hallo.txt
---
thisfile: "renBsp.bat"
thisfile: "test %20 blöd%.txt"
thisfile: "test.txt"
thisfile: "hallo.txt"
Grüße
Biber