Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst bei for f delims-x werden for-befehle nur 1x ausgefuert?!?

Mitglied: halo7one

halo7one (Level 1) - Jetzt verbinden

09.06.2008, aktualisiert 26.06.2008, 13738 Aufrufe, 10 Kommentare

ein einfaches for /f "delims=," %%i in ("%var%") do echo %var%
geht nicht... was mache ich falsch?

Guten Tag miteinander,
ich habe ein Problem das für mich, auch wenn ich mich mit for noch nicht soo gut auskenne, als einzige logische Erklärung ein Bug sein kann (auch dann bitte Lösungsvorschläge

Ich gehe der Einfachheit halber mal von der Beschreibung des for-Befehls aus:
01.
FOR /F ["Optionen"] %Variable IN ("Zeichenkette") DO Befehl [Parameter]
nun soll das ganze so aussehen:
01.
SETLOCAL EnableDelayedExpansion 
02.
set "option=1,2,3" 
03.
for /f "delims=," %%i in ("%option%") do echo %%i 
04.
pause
doch es wird nur ein echo ausgeführt, wenn auch dieses richtig. Was ist denn bitte an diesem simplen code falsch?

Ich weiß mir wirklich keinen Rat mehr und verzweifle noch daran X(

Also: HILFE!

ach ja hier noch meine Ausgabe (Zitat):
E:\Desktop>SETLOCAL EnableDelayedExpansion

E:\Desktop>set "option=1,2,3"

E:\Desktop>for /F "delims=," %i in ("1,2,3") do echo %i

E:\Desktop>echo 1
1

E:\Desktop>pause
Drücken Sie eine beliebige Taste . . .
(Zitat ende)

MfG, halo7one
Mitglied: miniversum
09.06.2008 um 21:38 Uhr
Das ist kein bug das stimmt so.
Du hast eine Zeichenkette die "1,2,3" lautet.
Diese teilst du in einzelne Teile auf, die durch ein "," getrennt sind. Der erste Teil steht in dem %%i dann.

Was du denke ich möchtest würdest du hiermit erreichen:
01.
SETLOCAL EnableDelayedExpansion 
02.
set "option=1 2 3" 
03.
for %%i in (%option%) do echo %%i 
04.
pause
miniversum
Bitte warten ..
Mitglied: bastla
09.06.2008 um 23:06 Uhr
@miniversum

Nur als Anmerkung: Deine Variante würde auch mit
01.
set "option=1,2,3"
funktionieren ...

Grüße
bastla
Bitte warten ..
Mitglied: halo7one
10.06.2008 um 16:57 Uhr
Hmm, erstmal danke für die schnellen Antworten.

Doch nun müsst ihr mir das doch etwas mehr verdeutlichen:
Mit delims gebe ich also nur die Trennzeichen an, falls ich den Zeichensatz in mehrere Tokens unterteilen will, oder wie?
Kann man denn auch die Platzhalter (nicht Trennzeichen) bestimmen?
Wenn nicht, dann würde ich gerne wissen, was alles die vordefinierten Platzhalter sind.

Nur des Interesses halber: kann man denn auch jedes Zeichen eines Satzes (z.B. "123") einzeln auswerten lassen, ein "," einfügen oder ähnliches was diesen Zweck erfüllen würde?
Bitte warten ..
Mitglied: miniversum
10.06.2008 um 17:20 Uhr
Mit delims gebe ich also nur die Trennzeichen an, falls ich den Zeichensatz in mehrere Tokens unterteilen will, oder wie?
Ja genau.
Delims sagt was das Trennzeichen ist udn mit tokens kanst du angeben welche Teile in den Variabeln stehen. Würdest du also z.B. tokens="2,3" angeben würde in %%i 2 und in %%j 3 stehen.

Was meinst du mit Platzhalter?

Nur des Interesses halber: kann man denn auch jedes Zeichen eines Satzes (z.B. "123") einzeln auswerten lassen, ein "," einfügen oder ähnliches was diesen Zweck erfüllen würde?

Du meinst sowas?
01.
SETLOCAL EnableDelayedExpansion 
02.
set "option=123" 
03.
:loop 
04.
if "%option%" equ "" goto:loopende 
05.
echo %option:~0,1% 
06.
set "option=%option:~1% 
07.
goto:loop 
08.
:loopende 
09.
pause
Bitte warten ..
Mitglied: halo7one
10.06.2008 um 17:30 Uhr
Ah danke bis zu dem %option:~0,1% hab ich es auch schon geschaft, nur das das set "option=%option:~1% hat mir gefehlt... darauf hätte ich selbst kommen können, TY

Mit Platzhalter meine ich bei z.B. set "option=1,2,3" die Kommas oder bei set "option=1 2 3" die Leerzeichen.
Bitte warten ..
Mitglied: Biber
10.06.2008 um 21:55 Uhr
Moin halo7one,

ich versuch mal eine Begriffsklärung anhand der Hilfe, die Du am CMD-Prompt zum FOR-Befehl aufrufen kannst:
01.
FOR /? 
02.
.... 
03.
.... 
04.
FOR /F ["Optionen"] %variable IN ('Zeichenkette') DO Befehl [Parameter] 
05.
FOR /F ["Optionen"] %variable IN (`Befehl`) DO Befehl [Parameter] 
06.
.... 
07.
    übersprungen. Das standardmäßige Verhalten bei der Analyse kann wahlweise 
08.
    durch den Parameter "Optionen" überschrieben werden. Das ist eine 
09.
    Zeichenkette in Anführungszeichen, welche eines oder mehrere Schlüssel- 
10.
    wörter enthält, um verschiedene Parameter für die Analyse anzugeben. Diese 
11.
    Schlüsselwörter sind: 
12.
 
13.
        eol=c           - Gibt das Zeichen für Zeilenendekommentare an 
14.
                          (nur eins). 
15.
        skip=n          - Gibt die Anzahl der Zeilen an, die am Anfang einer 
16.
                          Datei übersprungen werden. 
17.
        delims=xxx      - Gibt einen Satz von Trennzeichen an. Diese ersetzen 
18.
                          die Standardtrennzeichen TAB und Leerzeichen. 
19.
....
Was Du mit "Platzhalter" meintest, sind die "Trennzeichen", auf neudeutsch "Delimiter" oder in flapsigen Redmonder Jargon halt "delims".
Wenn die Werte (oder besser. die Token) durch Leerzeichen oder TABs getrennt sind, brauchst Du nichts angeben, denn das ist das Standardtrennzeichen.

Grüße
Biber
Bitte warten ..
Mitglied: bastla
10.06.2008 um 22:06 Uhr
... und falls doch das "for" ohne "/f" gemeint war, wären die Delimiter gleichfalls Blank und TAB sowie Komma und Semikolon ...

Grüße
bastla
Bitte warten ..
Mitglied: halo7one
10.06.2008 um 22:41 Uhr
Sers Biber,
Ich danke dir für die Ausführung, doch leider ist das nichts neues für mich :/ (bezieht sich auf deinen ersten Post)
Wenn ich durch delims die Trennzeichen angebe, die die Tokens voneinander trennt, dann wird mir für eine Zeichenkette jeder Token, den ich bestimmt habe (durch tokens=1,2,3,usw.) in eine andere Variable, wie z.B. %%i, %%j, usw. ausgegeben. Doch das will ich ja gar nicht!
Ich möchte, dass wie bei for ohne Parameter (und somit mit den Standardtrennzeichen) für jeden Token/Wert jeweils die Befehle nach do ausgeführt werden und dass NICHT bei EINEM "FOR-Durchlauf" alle Tokens auf einmal bearbeitet werden, indem sie in verschiedene Variablen unterteilt werden.

Und zu der Beschreibung von "delims" (aus dem CMD-Prompt):
Gibt einen Satz von Trennzeichen an. Diese ersetzen die Standardtrennzeichen TAB und Leerzeichen.
Wenn TAB und Leerzeichen alle Standardtrennzeichen sind, warum funktioniert dann auch das Komma (",")?
Also noch einmal meine Frage:
[...] dann würde ich gerne wissen, was alles die vordefinierten Platzhalter [=Standardtrennzeichen] sind

ok hat sich erledigt (Synchron-Post) TY
Würde jetzt nur gern wissen, ob man noch andere Trennzeichen definieren kann (das wäre dann wohl mit for /f ) und sich die for-Schleife genau so verhält, wie ohne das /f und mit Standardtrennzeichen (keine Unterteilung in verschiedene Variablen, nur in eine).

MfG,
halo7one
Bitte warten ..
Mitglied: Biber
10.06.2008 um 23:15 Uhr
Moin halo7one,

keine Unterteilung in verschiedene Variablen, nur in eine
Das wiederum würde heißen, das es gar keine Delimiter gibt (keine Delimiter->keine einzelnen Token bzw nur eines)
01.
>for /f "delims=" %i in ("1,2,3") do @echo %i 
02.
1,2,3 
03.
## -oder: Delims is mir wurscht, ich will alle Token- 
04.
>for /f "tokens=*" %i in ("1,2,3") do @echo %i 
05.
1,2,3 
06.
## geht auch mit Leerzeichen oder whatever 
07.
>for /f "tokens=*" %i in ("1 2 3") do @echo %i 
08.
1 2 3
Grüße
Biber
Bitte warten ..
Mitglied: halo7one
26.06.2008 um 18:29 Uhr
Also vielen Dank an euch,
das Problem ist soweit gelöst (wieder eines weniger

MfG,
halo7one
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch for f Befehl erkennt doppelte Zeichen als eines

gelöst Frage von 126594Batch & Shell3 Kommentare

Hallo zusammen. Ich versuche mich zur Zeit am Bearbeiten von Variablen in Batchdateien. Eigentlich bin ich schon ganz gut ...

Batch & Shell

Stringanipulation innerhalb einer FOR F Schleife

gelöst Frage von AcJokerBatch & Shell2 Kommentare

Hallo, ich würde gerne innerhalb einer FOR / F Schleife eine Variable (z.B. GKxxxxxxxxxx) "beschneiden", so das ich nur ...

Batch & Shell

For f Skip Schleife soll txt files kopieren

gelöst Frage von BiffBaffBatch & Shell2 Kommentare

Hallo zusammen, ich habe schon in anderen Foren gelesen, dass die FOR /F Variante keine Wildcards enthaelt. Ich wuerde ...

Batch & Shell

Ausgabe der einzelnen Ergebnisse einer For-Schleife mit Schalter F

gelöst Frage von hipfzwirgelBatch & Shell11 Kommentare

Hallo Leute, besteht die Möglichkeit die Ergebnisse einer For-Schleife(Batch/CMD) in eine für jeden Durchgang erzeugte Variable zu speichern. Beispiel: ...

Neue Wissensbeiträge
Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 13 StundenWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

iOS
IOS 11.2.6 verfügbar
Information von sabines vor 18 StundeniOS

Mit dem Update soll der Bug behoben werden, bei dem eine bestimmte Zeichenkette IOS zum Absturz gebracht hat.

Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 1 TagSicherheit8 Kommentare

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 1 TagInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Heiß diskutierte Inhalte
Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server25 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

LAN, WAN, Wireless
VPN Cisco ASA5505 PaloAlto PA-200
gelöst Frage von YannoschLAN, WAN, Wireless22 Kommentare

Hallo zusammen, ich würde gerne ein Site-to-Site VPN zwischen den beiden Standorten aufbauen. PaloAlto PA200 Internetanschluss Deutsche Telekom GK ...

SAN, NAS, DAS
Qnap TS-453S Pro - Anbindung Active Directory
Frage von JuckieSAN, NAS, DAS13 Kommentare

Hallo zusammen, ich habe hier eine Qnap TS-453S Pro die sich mal so absolut gar nicht in das Active ...