Variablenveränderung mit Hilfe von Zählschleife

Mitglied: n0cturne

n0cturne (Level 1) - Jetzt verbinden

24.03.2016, aktualisiert 14:01 Uhr, 1015 Aufrufe, 10 Kommentare

Hallo Zusammen,

ich möchte mit Hilfe einer Zählschleife die Outlet Variablen bei jedem Durchgang +1 setzen
um dann ab der Sprungmarke SyncStart den Wert von Outlet_1, Outlet_2...usw zu verwenden.
Beim Test mit echo %Outlet% erhalte ich aber immer nur die Ausgabe Outlet_1 und nicht den Wert.

Würde mich über eine Brechstange freuen, die das Brett vor meinem Kopf löst. ;)


Mitglied: Gersen
24.03.2016, aktualisiert um 14:48 Uhr
Hallo,

weil ein String (mit dem Wert eines Variablennamens) noch lange nicht die Variable selbst ist...
Warum lässt Du das Konstrukt Zeilen 12-21 nicht weg und sagst in Zeile 29:

Gruß,
Gersen
Bitte warten ..
Mitglied: Biber
LÖSUNG 24.03.2016, aktualisiert um 15:05 Uhr
Moin n0cturne,

ergänze in deinem Schnipsel die Zeile 01 auf @echo off & setlocal enableDelayedExpansion
Stichwort DelayedExpansion -> Forumssuche

Ändere die Zeile 30 zur Demo auf echo Outlet=%Outlet% Inhalt:!%outlet%!
(und füge erstmal in der Zeile darunter ein goto :eof ein.))

Ergebnis sollte sein.
Outlet=Outlet_1 Inhalt:\\127.0.0.1\Matrix$\MatrixFiliale\Filiale_1


Wenn das Ergebnis deinen Wünschen entspricht, dann ändere in den Zeilen unterhalb Zeile 30 auch das %outlet% in !%outlet%!.

Abgesehen davon hat Gersen recht - du machst dir das Leben zu schwer mit dem dutzend Variablen.
Die kannst du alle in der Pseudo-Hochzählschleife abfackeln.

Grüße
Biber
Bitte warten ..
Mitglied: n0cturne
24.03.2016, aktualisiert um 16:52 Uhr
Danke fürs Brett wegnagen, werter Herr Biber ;)
Läuft! :D
Bitte warten ..
Mitglied: n0cturne
20.05.2016, aktualisiert um 17:13 Uhr
Hallo Nochmal,

seit ich @echo off & setlocal enableDelayedExpansion nutze, habe ich ein Problem, wenn Variablen ein ! enthalten.

set password=pw123!

Ergibt:
echo pw123

Das ist unglücklich, da ich auf das Passwort keinen Einfluss habe.
Was kann ich tun, um das Problem zu umschiffen?
Bitte warten ..
Mitglied: Biber
23.05.2016 um 09:09 Uhr
Moin n0cturne,

es gibt auch zu setlocal EnableDelayedExpansion das Gegenstück SetLocal DisableDelayedExpansion.

Es sollte reichen, wenn du nach den Zeilen, in denen du die "Verzögerte Variablenauflösung" definitiv brauchst.

Also sinngemäß

Grüße
Biber
Bitte warten ..
Mitglied: n0cturne
24.05.2016 um 12:28 Uhr
Hi Biber,

ich fürchte, dass ich mir SqlCmd Zeile selbst im Weg stehe.
Hast du eine Idee, wie ich hier verfahren kann?


Bitte warten ..
Mitglied: Biber
LÖSUNG 24.05.2016, aktualisiert um 12:43 Uhr
Moin n0cturne,

auf den ersten flüchtigen Blick:
Lass einfach in Zeile 01 das EnableDelayedExpansion ersatzlos weg - du benötigst in dem Schnipsel doch keine verzögerte Variablenauflösung.

Und weiter: Ändere sicherheitshalber die Schreibweise bei den SETs so:
set "SQLPassword=Passwort!"

Nur um unerwünschte trailing blanks auszuschliessen.
Nicht dass wir an der ganz falschen Stelle einen Fehler suchen.

Grüße
Biber
Bitte warten ..
Mitglied: n0cturne
24.05.2016, aktualisiert um 15:47 Uhr
Habe die Quotes gesetzt und EnableDelayedExpansion entfernt.

Nun passt das Passwort mit dem !
Allerdings bekomme ich so ein Problem mit der SQLDatabase Variable,
die ich in Zeile 31 und 32 benutze.

echo %SQLDatabase%
ergibt
!SQLDatabase_1!

Dabei möchte ich mit master, posdata oder posAccess weiterarbeiten.
Bitte warten ..
Mitglied: 129413
129413 (Level 2)
24.05.2016, aktualisiert um 19:14 Uhr
DelayedExpansion kann an jeder Stelle im Skript an und aus geschaltet werden
Dort wo man es eben braucht schaltet man sie vorher ein und danach wieder aus.

Gruß skybird
Bitte warten ..
Mitglied: Biber
LÖSUNG 24.05.2016 um 16:10 Uhr
Moin n0cturne,

um skybirds Antwort für dich noch eindeutiger zu präzisieren:

Zitat von @n0cturne:

Allerdings bekomme ich so ein Problem mit der SQLDatabase Variable,
die ich in Zeile 31 und 32 benutze.
Dann halt VOR der heutigen Zeile 31 ein Setlocal EnableDelayedExpansion einfügen.
Nach der heutigen Zeile 32 ein Setlocal DisableDelayedExpansion einfügen.

Grüße
Biber
Bitte warten ..
Heiß diskutierte Inhalte
Off Topic
Wie sieht eine korrekte IT-Organisation aus?
imebroVor 1 TagFrageOff Topic20 Kommentare

Hallo, da unser IT-Verantwortlicher ja vor einem Jahr gehen musste, stelle ich mir die Frage, wie denn eine korrekte IT-Organisation überhaupt aussehen muss. Zur ...

Server-Hardware
Mini-PC oder Server für Dauerbetrieb
Surfer12Vor 1 TagFrageServer-Hardware20 Kommentare

Hallo zusammen, wir projektieren gerade eine neue Zutrittslösung für ein kleines Hotel mit ca. 20 Zimmern. Die Gäste sollen in Zukunft einen SelfCheckIn machen ...

Firewall
Windows Defender dauerhaft deaktivieren
Frankie222Vor 1 TagFrageFirewall9 Kommentare

Hallo, ich wollte mal fragen ob jemand weiss wie man bei Windows 10 Home den kompletten Schutz deaktiviert. Den Defender und alles! Ich habe ...

Notebook & Zubehör
Funktionieren keine USB-DVD-RW an Surfaces?
StefanKittelVor 1 TagFrageNotebook & Zubehör14 Kommentare

Hallo, ein Kunde von mir hat ein Surface Pro. Wenn er ein USB-DVD-RW-Laufwerk an die Dockingstation anschliesst funktioniert es nicht. - Es bekommt Strom ...

Windows 10
Windows 10 20HS SCCM
stoepsu77Vor 1 TagFrageWindows 1014 Kommentare

Hallo zusammen Ich hoffe, dass jemand von euch mir eine weitere Idee geben kann. Ich habe keine Ideen mehr. Folgendes: Wir haben eine Tasksequenz ...

Suche Projektpartner
Suche Projektpartner
irinaterletska12Vor 1 TagFrageSuche Projektpartner1 Kommentar

Hallo alle zusammen . Wir sind eine ukrainische Firma, die nach dem Projektpartner sucht. Wir können für deutsche Firmen Support geben. Wir können Fernwartung ...

SAN, NAS, DAS
NAS mit Backup Funktion gesucht
YellowcakeVor 1 TagFrageSAN, NAS, DAS8 Kommentare

Hallo zusammen ich bin total unerfahren was diese NAS Systeme angeht die man sich zuhause hinstellen kann. Aktuell habe ich einen kleinen Server hier ...

Windows Server
Wie konvertiere ich NTFS zu GPT
itnirvanaVor 1 TagFrageWindows Server11 Kommentare

Hallo, auf einem Server ist die Platte 2048 GB per NTFS mit vollem Platz erreicht. Wie kann ich nun diese Platte zu GPT konvertieren. ...