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"
Please also mark the comments that contributed to the solution of the article
Content-ID: 102329
Url: https://administrator.de/contentid/102329
Printed on: December 5, 2024 at 21:12 o'clock
4 Comments
Latest comment
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