ahstax
Goto Top

Übergabe Parameter

for-Schleife kan Parameter syntaktisch nicht bearbeiten

Ähm, ja:

Ich teste gerade die Möglichkeiten der Parameterübergaben an, bin ich doch trotz vergleichbar hohem Alter von DOS eher ein Neuling.

Die Datei test.bat wird über Befehlszeile mittels "c:\00\test.bat c:\test\ah\bla" aufgerufen.

Die test.bat selbst sieht so aus:

<SNIP>------------
@echo off

echo %1
pause

for /f "tokens=3 delims=\" %%h in %1 do set "Empfaenger=%%h"
net send %Empfaenger% Test bestanden.
pause
<SNIP>------------

Der Part echo %1 funktioniert.
Bei der Abarbeitung der for-Schleife erhalte ich aber leider die Fehlermeldung ""c:\test\ah\bla" ist syntaktisch an dieser Stelle nicht verarbeitbar.", und ich ba keine Ahnung warum. Zumal in einem ähnlichen Code, in dem allerdings ein Pfad innerhalb des Codes vorgegeben steht, die Verarbeitung genau so funktioniert.

Ich bin für jede Hilfe dankbar!!!

Herzliche Grüße,
Andreas

Content-ID: 154294

Url: https://administrator.de/forum/uebergabe-parameter-154294.html

Ausgedruckt am: 04.04.2025 um 17:04 Uhr

60730
60730 03.11.2010 um 18:27:06 Uhr
Goto Top
moin,

normalerweise - siehe for /? - sehen For Zeilen anders aus....

for /f "tokens=3 delims=\" %%h in ('type %1') do

Da wir aber alle den Inhalt von c:\test\ah\bla nicht kennen, ist das reines Mutmassen....

btw: code Tags sind was feines, wenn man Sie nutzt face-sad

Gruß
ahstax
ahstax 03.11.2010 um 19:09:22 Uhr
Goto Top
Hallo,

erstmal Danke für die Rückmeldung.

Zwei Dinge:

a) was sind Code-Tags?

b) ich hätte erwähnen sollen, dass nicht das Ziel von "c:\test\ah\bla" ausgelesen werden soll, sondern der String "c:\test\ah\bla" an sich. Die for-Schleife soll also in diesem Fall "ah" als Ergebnis liefern.

Wenn dies schon offene Fragen klärt, um so besser. Ich werde aber in jedem Fall morgen ein wenig mit der von Dir genannten Schleife "spielen"

Herzliche Grüße,
Andreas
bastla
bastla 03.11.2010 um 19:26:41 Uhr
Goto Top
Hallo ahstax und willkommen im Forum!

Wenn's tatsächlich nur um den Namensbestandteil geht, dann etwa so:
for /f "tokens=3 delims=\" %%h in ("%~1") do set "Empfaenger=%%h"
Grüße
bastla

P.S.: "" sorgen dafür, dass gepostete Batchzeilen so aussehen wie 4 Zeilen oberhalb ...
ahstax
ahstax 04.11.2010 um 09:36:52 Uhr
Goto Top
Vielen Dank, es funktioniert!!!

Und ich gelobe Besserung und werde versuchen, die Code-Tags zu verwenden.

Grüße und nen schönen Tag,
Andreas
bastla
bastla 04.11.2010 um 18:45:32 Uhr
Goto Top
Hallo ahstax!
Vielen Dank, es funktioniert!!!

Und ich gelobe Besserung und werde versuchen, die Code-Tags zu verwenden.
Was will man(n) noch mehr ... face-smile

Grüße
bastla