Wert einer Variable an eine andere übergeben
Hallo,
ich übergebe über an die Variable %1 beim Aufrufen eines Skriptes einen Wert. Diesen kann ich auch absolut problemlos im Skript nutzen. Nun möchte ich aber einer anderen Variable den Wert von 1% zuweisen. Das bekomme ich einfach nicht hin. Folgendes funktioniert z.B. nicht:
set usr=%1
Wie sieht dafür die korrekte Syntax aus
?
Danke!
EDIT:
Anscheinend klappt es doch so. Allerdings ist die Ausgabe über "echo" in meiner IF-Schleife nicht nachvollziehbar:
if [%1] == (
set /p usr=
) else (
set usr=%1
echo %usr%
)
"echo %usr%" gibt in diesem Falle nichts aus. "echo %1" gibt hingegen korrekt den entsprechenden Wert aus. Direkt NACH der Schleife gibt aber auch "echo %usr%" den richtigen Wert aus. Seltsam. Ich kann aber auch mit "echo %1" arbeiten.
ich übergebe über an die Variable %1 beim Aufrufen eines Skriptes einen Wert. Diesen kann ich auch absolut problemlos im Skript nutzen. Nun möchte ich aber einer anderen Variable den Wert von 1% zuweisen. Das bekomme ich einfach nicht hin. Folgendes funktioniert z.B. nicht:
set usr=%1
Wie sieht dafür die korrekte Syntax aus
Danke!
EDIT:
Anscheinend klappt es doch so. Allerdings ist die Ausgabe über "echo" in meiner IF-Schleife nicht nachvollziehbar:
if [%1] == (
set /p usr=
) else (
set usr=%1
echo %usr%
)
"echo %usr%" gibt in diesem Falle nichts aus. "echo %1" gibt hingegen korrekt den entsprechenden Wert aus. Direkt NACH der Schleife gibt aber auch "echo %usr%" den richtigen Wert aus. Seltsam. Ich kann aber auch mit "echo %1" arbeiten.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 571767
Url: https://administrator.de/forum/wert-einer-variable-an-eine-andere-uebergeben-571767.html
Ausgedruckt am: 04.04.2025 um 06:04 Uhr
1 Kommentar
Moin,
Gar nicht seltsam. Befehle, die mit Klammern gruppiert werden gelten wie ein einziger Befehl.
Wenn du eine Variable innerhalb einer Gruppierung setzt; und diesen innerhalb der selben Gruppierung wieder aufrufst, musst du die Variable verzögern, sonst wird dir der Wert ausgegeben, den die Variable vor der Gruppierung hatte.
Falsch:
Richtig:
Gruß Thomas
Gar nicht seltsam. Befehle, die mit Klammern gruppiert werden gelten wie ein einziger Befehl.
Wenn du eine Variable innerhalb einer Gruppierung setzt; und diesen innerhalb der selben Gruppierung wieder aufrufst, musst du die Variable verzögern, sonst wird dir der Wert ausgegeben, den die Variable vor der Gruppierung hatte.
Falsch:
@echo off
(
set test=Hallo Welt
echo %test%
)
Richtig:
@echo off
SetLocal EnableDelayedExpansion
(
set test=Hallo Welt
echo !test!
)
Gruß Thomas