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-ID: 18827

Url: https://administrator.de/forum/batch-variable-in-for-schleife-deklarieren-18827.html

Ausgedruckt am: 24.12.2024 um 01:12 Uhr

Biber
Biber 07.11.2006 um 14:29:43 Uhr
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
DarkAlucard
DarkAlucard 07.11.2006 um 15:25:02 Uhr
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
Biber
Biber 07.11.2006 um 15:56:20 Uhr
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