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-Key: 154294

Url: https://administrator.de/contentid/154294

Printed on: April 19, 2024 at 17:04 o'clock

Mitglied: 60730
60730 Nov 03, 2010 at 17:27:06 (UTC)
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ß
Member: ahstax
ahstax Nov 03, 2010 at 18:09:22 (UTC)
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
Member: bastla
bastla Nov 03, 2010 at 18:26:41 (UTC)
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 ...
Member: ahstax
ahstax Nov 04, 2010 at 08:36:52 (UTC)
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
Member: bastla
bastla Nov 04, 2010 at 17:45:32 (UTC)
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