darkalucard
Goto Top

Batch, Variable in For Schleife Deklarieren

Bin Scrips-Anfänger, habe also ein realtiv einfaches Script

Also mein Problem ist Folgendes,

ich hbe ein Batch-Skript das einfach nur ein Netzlaufwerk zuweisen soll,

dabei wird die IP des Zielrechners in der Variable "server" gespeichert.

Das funktioniert auch, nur nun habe ich das ganze in eine For-Schleife gepackt und in dieser will der aus welchem Grund auch immer meine Variable nichtmehr Deklarieren, hier das Beispiel:

for /L %%x IN (1 1 254) do (
set server=192.168.1.%%x
echo %server%
...
)

natürlich ist das echte Skript ein wenig umfangreicher aber selbst dieses Beispiel funktioniert nicht, ich hoffe ihr könnt mir helfen


MfG

S.Schmiedel

Content-Key: 18827

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

Printed on: April 24, 2024 at 21:04 o'clock

Member: Biber
Biber Nov 07, 2006 at 13:29:43 (UTC)
Goto Top
Moin DarkAlucard,

es funktioniert schon...
--z.B am CMD-Prompt
for /L %x IN (1 1 254) do @echo 192.168.1.%x

Aber wenn Du innerhalb der Klammern nach dem "DO..." etwas von den neu zugewiesenen Daten sehen/lesen/anzeigen willst, dann musst Du mit "EnableDelayedExpansion" arbeiten

 REM im Batch
@echo off & setlocal EnableDelayedExpansion
for /L %%x IN (1 1 254) do (
  Set myserver=192.168.1.%%x
  Echo MyServer: !myServer!
)

Siehe im Bereich "Batch & Shell" für Details.

Gruß
Biber
Member: DarkAlucard
DarkAlucard Nov 07, 2006 at 14:25:02 (UTC)
Goto Top
Erstmal danke für die schnelle Antowort, aber trotz alledem Funktioniert das in meiner Batch datei NICHT! ich habe Natürlich den kleinen Buchstabendreher bei setlocal ausgeglichen, aber selbst wenn cih dein beispiel kopiere in einer Batch File ist das nciht möglich, und eine BAtchfile ist Dringend notwendig.

Zudem habe ich unter dem Bereich "Batch & Shell" ein bissl gesucht und bin trotzdem nciht fündig geworden....


wäre nett wenn mir jemand evtl nen Link oder so geben könnte zu was brauchbarem

MfG

S.Schmiedel
Member: Biber
Biber Nov 07, 2006 at 14:56:20 (UTC)
Goto Top
Bei mir tut es mit dem Schnipsel oben:
(=14:24:14  D:\temp=)
>f:\administrator\SetMyServer.bat

(=15:59:35  D:\temp=)
>REM im Batch
MyServer: 192.168.1.1
MyServer: 192.168.1.2
MyServer: 192.168.1.3
MyServer: 192.168.1.4
MyServer: 192.168.1.5
MyServer: 192.168.1.6
....usw

Biber