Zeile bis Anführungszeichen übernehmen
Ich möchte eine Zeile in eine Variable übernehmen bis zum ersten "
Testinstall"
bach
Testinstall
for /f "tokens=1 delim="" %%j in (_wis-pak.tmp) do (newest-wis-paket=%%j)
Aber irgendwie will er nicht und bricht mit einem Syntakerror ab.
und nach delim=" hat irgendwie noch niemand gesucht in Googel habe ich es auf jedenfall nicht gefunden.
Das Zeichen " mit ^ Maskieren brachte das selbe Ergebnis.
Kann hier jemand liecht in den Schatten bringen
Testinstall"
bach
Testinstall
for /f "tokens=1 delim="" %%j in (_wis-pak.tmp) do (newest-wis-paket=%%j)
Aber irgendwie will er nicht und bricht mit einem Syntakerror ab.
und nach delim=" hat irgendwie noch niemand gesucht in Googel habe ich es auf jedenfall nicht gefunden.
Das Zeichen " mit ^ Maskieren brachte das selbe Ergebnis.
Kann hier jemand liecht in den Schatten bringen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 137998
Url: https://administrator.de/contentid/137998
Ausgedruckt am: 26.11.2024 um 14:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo mycroftone!
Eventuell hilft eine Set-Anweisung:
Gruß Dieter
Eventuell hilft eine Set-Anweisung:
for /f "tokens=1 delim="" %%j in (_wis-pak.tmp) do (SET newest-wis-paket=%%j) |
Gruß Dieter
Moin mycroftone,
zu dem Thema "Delimiter soll Anführungszeichen sein"....
Soweit ich es probiert habe, ist ein "Delims=Anfüzeichen" in der FOR/F-Anweisung nicht vorgesehen.
Du kannst es aber mit ein, zwei Skript-Zeilen mehr umgehen.
Beispiel-Spielbatch:
Ausgabe des Schnipsels:
Die Zeile 16 bewirkt, dass das Leerzeichen vor dem Anführungszeichen auch entsorgt wird.
Wenn du wirklich die Zeile "bis zum Anführungszeichen" brauchst, dann Zeile 16 ausREMen.
Zu deinem zwischenzeitlich geposteten Kommentar: der FindStr-Befehl kennt auch einen Schalter /C für "buchstabengetreuen Vergleich".
Damit kannst du evtl deinen String-in-Anführungszeichen suchen.
Grüße
Biber
zu dem Thema "Delimiter soll Anführungszeichen sein"....
Soweit ich es probiert habe, ist ein "Delims=Anfüzeichen" in der FOR/F-Anweisung nicht vorgesehen.
Du kannst es aber mit ein, zwei Skript-Zeilen mehr umgehen.
Beispiel-Spielbatch:
::--- Delims-sei-Anführungszeichen-Beispiel
::Inhalte der Testdatei seinen folgende drei Zeilen
:: test1 ohne Anführungszeichen
:: test2 zwei dito
:: test3 drei "Der dritte" mit Anführungszeichen
@echo off & SetLocal
Type e:\schnipsel\mycroft.txt
FOR /F "delims=" %%i in (e:\schnipsel\mycroft.txt) do set "line=%%i" & call :ShowIt
goto :eof
~~ Raum für Notizen
:ShowIt
Set "line=%line:"=§%"
Set "line=%line: §=§%"
echo LineNachErsetzen [%line%]
FOR /F "delims=§" %%a in ("%line%") do echo Ausgabe [%%a]
goto :eof
Ausgabe des Schnipsels:
>e:\schnipsel\mycroft.cmd
test1 ohne Anführungszeichen
test2 zwei dito
test3 drei "Der dritte" mit Anführungszeichen
LineNachErsetzen [test1 ohne Anführungszeichen]
Ausgabe [test1 ohne Anführungszeichen]
LineNachErsetzen [test2 zwei dito]
Ausgabe [test2 zwei dito]
LineNachErsetzen [test3 drei§Der dritte§ mit Anführungszeichen]
Ausgabe [test3 drei]
Wenn du wirklich die Zeile "bis zum Anführungszeichen" brauchst, dann Zeile 16 ausREMen.
Zu deinem zwischenzeitlich geposteten Kommentar: der FindStr-Befehl kennt auch einen Schalter /C für "buchstabengetreuen Vergleich".
Damit kannst du evtl deinen String-in-Anführungszeichen suchen.
Grüße
Biber
Hallo mycroftone!
Soferne ich das richtig verstehe und es darum geht, den entsprechenden Zeilenanfang aus der ersten Zeile der Datei zu holen, könntest Du es damit versuchen:
Grüße
bastla
Soferne ich das richtig verstehe und es darum geht, den entsprechenden Zeilenanfang aus der ersten Zeile der Datei zu holen, könntest Du es damit versuchen:
@echo off & setlocal
set S=%temp%\Splt.vbs
>%S% echo WScript.Echo Split(CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0)).ReadAll, Chr(34))(0)
for /f "delims=" %%i in ('cscript //nologo %S% "D:\_wis-pak.tmp"') do set "newest-wis-paket=%%i"
del %S%
echo %newest-wis-paket%
bastla