Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Set Variable2 gleich Variable1

Frage Entwicklung Batch & Shell

Mitglied: ghune

ghune (Level 1) - Jetzt verbinden

24.10.2010 um 16:54 Uhr, 2482 Aufrufe, 5 Kommentare

Hallo zusammen,

wollte mir gerade ein paar Pfadnamen mit SET zusammenbauen, und komme an der Stelle ins straucheln, an der
ich einer Variablen den Wert einer anderen Variablen zuweisen will.

01.
set zeitstempel = %date:~6,4%%date:~3,2%%date:~0,2% 
02.
set ziel_drv = "D:\" 
03.
set ziel_ord = "IMAGE" 
04.
set ziel_uord = %ziel_drv%%ziel_ord%%zeitstempel%
Die ersten drei Variablen klappen, aber die Variable ziel_uord bleibt immer leer? SET /? hat mir nicht weitergeholfen.
Wo liegt da der Fehler?

Grüße, Ghune
Mitglied: rubberman
24.10.2010 um 17:57 Uhr
Hallo ghune,

du erzeugst Äpfel und fragst anschließend nach Birnen.
set ziel_drv = xyz erzeugt eine Variable %ziel_drv % (man beachte das Leerzeichen am Ende).
01.
set "zeitstempel=%date:~6,4%%date:~3,2%%date:~0,2%" 
02.
set "ziel_drv=D:\" 
03.
set "ziel_ord=IMAGE" 
04.
set "ziel_uord=%ziel_drv%%ziel_ord%%zeitstempel%"
Grüße
rubberman
Bitte warten ..
Mitglied: ghune
24.10.2010 um 18:07 Uhr
Hallo rubberman,

werde versuchen, das nachzuvollziehen. Es klappt jetzt aufjedenfall. Danke!

Grüße, Ghune
Bitte warten ..
Mitglied: rubberman
24.10.2010 um 18:21 Uhr
Hallo ghune,

die Sache ist ganz einfach, vermeide Leerzeichen, wo keine hingehören.
In deinem Fall wird ein Leerzeichen vor dem = dem Variablennamen hinzugefügt und das Leerzeichen danach wird dem Wert vorangestellt.
Teste:
01.
@echo off &setlocal 
02.
set var1 = val1 
03.
set var1=val2 
04.
echo %var1 % 
05.
echo %var1% 
06.
pause
Wenn ich das ganze oben noch in Anführungszeichen eingeschlossen habe, dann um zu verhindern, dass mögliche Leerzeichen hinter dem Wert auch noch übernommen werden.

Grüße
rubberman
Bitte warten ..
Mitglied: ghune
24.10.2010 um 20:32 Uhr
Verstehe. Und ich habe sogar schön mit Tabs alles ausgerichtet, damits leserlicher wird. Das kann ich mir dann abschminken.
Grüße, Ghune
Bitte warten ..
Mitglied: rubberman
24.10.2010 um 20:46 Uhr
Hallo ghune.

So schlimm ist es dann auch wieder nicht.
Natürlich rücke ich den Code auch ein, wenns damit leserlicher wird. Alles was du an Tabs oder Leerzeichen vor die Zeile schreibst, bleibt unbeachtet.
01.
@echo off &setlocal 
02.
for /l %%i in (1,1,2) do ( 
03.
  set "var%%i=val%%i" 
04.
05.
echo %var1% 
06.
echo %var2% 
07.
pause
Ist doch schön, auf dem ersten Blick zu sehen, dass der set-Befehl innerhalb der for-Schleife ausgeführt wird

Grüße
rubberman
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Set-ADUser - Füllen des Felds "Location" funktioniert nicht (2)

Frage von Alex94G zum Thema Batch & Shell ...

Batch & Shell
gelöst BATCH: Minuszeichen in set-Befehl (3)

Frage von Schottenrock zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch-bei set in der Mitte schreiben? (5)

Frage von Jonas1806 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch: (at)set und (at)echo in For-Schleifen? und mehr (8)

Frage von Ben.Blake.79 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (22)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...