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

innerhalb eines IF-Blocks Neusetzen einer Variable

Frage Entwicklung Batch & Shell

Mitglied: olliwest

olliwest (Level 1) - Jetzt verbinden

28.05.2008, aktualisiert 11:14 Uhr, 3233 Aufrufe, 2 Kommentare

hallo zusammen,

ich habe ein Problem, und zwar funktioniert das setzten einer Variable innerhalb einer IF-Anweisung nicht nur außerhalb.

Code:

@if exist c:\test.txt (
@set /p user=<c:\test.txt
@echo %user% User angemeldet
@del c:\test.txt
exit 0 )

@if exist c:\test2.txt (
@set /p user=<c:\test2.txt
@echo %user% User angemeldet
@del c:\test2.txt
exit 0 )

ich habe es auch schon mit, @echo !user! User angemeldet,
ausprobiert, funktioniert auch nicht.

kann mir da jemand weiterhelfen, danke

gruß olli
Mitglied: bastla
28.05.2008 um 10:46 Uhr
Hallo olliwest und willkommen im Forum!

... funktioniert das setzten einer Variable innerhalb einer IF-Anweisung nicht
Setzen kannst Du die Variable, aber den gesetzten Wert kannst Du innerhalb des IF nur über "delayedExpansion" auslesen - daher:
01.
@echo off & setlocal enabledelayedexpansion 
02.
if exist c:\test.txt ( 
03.
    set /p user=<c:\test.txt 
04.
    echo !user! User angemeldet 
05.
    del c:\test.txt 
06.
    exit 0 
07.
) 
Dadurch ändert sich auch die Variablenschreibweise auf !Variable!.

Als Alternative dazu könntest Du einfach den entsprechenden Teil überspringen oder ein Unterprogramm verwenden - ersteres etwa so:
01.
@echo off & setlocal 
02.
if not exist c:\test.txt goto :NichtDa 
03.
set /p user=<c:\test.txt 
04.
echo %user% User angemeldet 
05.
del c:\test.txt 
06.
exit 0 
07.
 
08.
:NichtDa 
09.
echo Die Datei "c:\test.txt" wurde nicht gefunden.

Grüße
bastla
Bitte warten ..
Mitglied: olliwest
28.05.2008 um 11:14 Uhr
Hi bastla,

vielen Dank für die schnelle Antwort.
Es funktioniert wunderbar, danke.

Gruß Olli
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Get-Aduser - If then else??? (2)

Frage von MuHMuH zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch: CPU-Auslastung eines Prozesses auslesen und als Variable definieren (3)

Frage von tralveller zum Thema Batch & Shell ...

Batch & Shell
gelöst Sonderzeichen aus einer Variable entfernen? (13)

Frage von Kriegstreiber zum Thema Batch & Shell ...

Neue Wissensbeiträge
Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(4)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Heiß diskutierte Inhalte
Windows 7
gelöst Lokales Adminprofil defekt (25)

Frage von Yannosch zum Thema Windows 7 ...

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

LAN, WAN, Wireless
gelöst Statische Routen mit ISC-DHCP Server für Android Devices (22)

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

Exchange Server
gelöst Migration Exchange 2007 zu 2013 - Public Folder teilweise weg (16)

Frage von Andy1987 zum Thema Exchange Server ...