FOR Schleife mit DIR verliert Ausrufezeichen
Hallo Kenner und Könner,
leider hadere ich immer noch mit den Sonderzeichen in meiner BATCH
Jetzt ist es das " ! " das mir Kopfschmerzem macht, denn es verswindet einfach aus dem String
die For Schleife gibt ein mit DIR ermittelten Dateinamen, der ein ! enthält schlich ohne aus
Also dir zeigt noch "na! sowas.txt"
echo 101 zeigt nur "na sowas.txt"
ein & an der Stelle wir durchgereicht
wie kann ich ereichen, das auch das ! durchgereicht wird?
leider hadere ich immer noch mit den Sonderzeichen in meiner BATCH
Jetzt ist es das " ! " das mir Kopfschmerzem macht, denn es verswindet einfach aus dem String
dir /b "!quella!"
pause
FOR /f "delims=" %%a IN ('dir /b "!quella!"') DO (
echo 101 %%a
pause
set "quelle=%~1%~2\%%a"
)
die For Schleife gibt ein mit DIR ermittelten Dateinamen, der ein ! enthält schlich ohne aus
Also dir zeigt noch "na! sowas.txt"
echo 101 zeigt nur "na sowas.txt"
ein & an der Stelle wir durchgereicht
wie kann ich ereichen, das auch das ! durchgereicht wird?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 231510
Url: https://administrator.de/contentid/231510
Ausgedruckt am: 16.11.2024 um 11:11 Uhr
7 Kommentare
Neuester Kommentar
dann musst du innerhalb deiner Schleife vor dem
echo ein
setzen.
Exkurs zur verzögerten Variablenerweiterung:
Tutorial zur FOR-Schleife
Grüße Uwe
echo ein
setlocal disabledelayedexpansion
Exkurs zur verzögerten Variablenerweiterung:
Tutorial zur FOR-Schleife
Grüße Uwe
Moin RaidMan,
ich habe da keine Schwierigkeiten bei enabled delayed expansion (Testfall 1 unten).
Grüße
Biber
ich habe da keine Schwierigkeiten bei enabled delayed expansion (Testfall 1 unten).
C:\Users\Biber>md "Na! hallo & bye"
C:\Users\Biber>for /f "delims=" %i in ('dir /b na*') do @echo Inhalt von i:[%i]
Inhalt von i:[Na! hallo & bye]
C:\Users\Biber>setlocal enabledelayedexpansion & for /f "delims=" %i in ('dir /b na*') do @(set "yy=%i" & echo Inhalt von yy:[ !yy!])
Inhalt von yy:[ Na! hallo & bye]
## Problem OHNE delayedExpansion Ich muss die Variabl %xx% in Anführungszeichen setzen:
C:\Users\Biber>set xx
xx=Na! hallo & bye
... echo Inhalt von xx:"%xx%"
Inhalt von xx:"Na! hallo & bye"
##Ohne Anführungszeichen stolpert der Interpreter über das "&"-Zeichen.
Grüße
Biber
moin RaidMan,
Ich verweise mal auf die Beschreibung #94915 Batch - setlocal EnableDelayedExpansion - ersetzen von Text, der ein Ausrufezeichen enthält
Gruß Phil
man(n) könnte fast meinen das Problem ist bekannt
Ich verweise mal auf die Beschreibung #94915 Batch - setlocal EnableDelayedExpansion - ersetzen von Text, der ein Ausrufezeichen enthält
Gruß Phil
Hallo Biber!
Könntest Du aber natürlich so versuchen:
Der Nebeneffekt, dass ohne Klimmzüge der Inhalt von !yy! nach dem
@ RaidMan
Möchtest Du nicht vielleicht einmal darstellen, was Du eigentlich insgesamt erreichen willst?
Grüße
bastla
[Edit] @ PH: Den Thread hätte ich wohl nicht mehr gefunden ... [/Edit]
Könntest Du aber natürlich so versuchen:
@echo off & setlocal
md "Na! hallo & bye"
for /f "delims=" %%i in ('dir /b na*') do (
set "yy=%%i"
setlocal enabledelayedexpansion
echo Inhalt von yy:[!yy!]
endlocal
)
endlocal
nicht mehr zur Verfügung steht, ist natürlich klar ...@ RaidMan
Möchtest Du nicht vielleicht einmal darstellen, was Du eigentlich insgesamt erreichen willst?
Grüße
bastla
[Edit] @ PH: Den Thread hätte ich wohl nicht mehr gefunden ... [/Edit]
Hallo RaidMan!
Batch ist natürlich nicht erste Wahl, wenn es um Stringmaniipulationen geht, aber die Sonderzeichenproblematik lässt sich durch konsequentes Verwenden von Anführungszeichen eigentlich ganz gut entschätfen - und wenn die in die Textdatei geschriebenen Informationen für den Import in eine Datenbank gedacht sind, sollte es ja auch kein Problem sein, auch dort Anführungzeichen beizubehalten ...
Grüße
bastla
Batch ist natürlich nicht erste Wahl, wenn es um Stringmaniipulationen geht, aber die Sonderzeichenproblematik lässt sich durch konsequentes Verwenden von Anführungszeichen eigentlich ganz gut entschätfen - und wenn die in die Textdatei geschriebenen Informationen für den Import in eine Datenbank gedacht sind, sollte es ja auch kein Problem sein, auch dort Anführungzeichen beizubehalten ...
Grüße
bastla