nahcir
Goto Top

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 face-confused?

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.

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

TK1987
TK1987 14.05.2020 um 15:59:30 Uhr
Goto Top
Moin,

Zitat von @nahcir:
"echo %usr%" gibt in diesem Falle nichts aus. [...] Seltsam.
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