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

Verzögerte Umgebungsvariablenerweiterung nur für eine batch-Datei aktivieren

Frage Entwicklung Batch & Shell

Mitglied: AlbertMinrich

AlbertMinrich (Level 2) - Jetzt verbinden

29.01.2009, aktualisiert 14:50 Uhr, 8019 Aufrufe, 9 Kommentare

Hallo,

ich würde gerne die verzögerte Umgebungsvariablenerweiterung (cmd /v:on) nur für eine batch-Datei aktivieren.
Das geht zwar, wenn ich die Eingabeaufforderung mit cmd /v:on starte und dann innerhalb der Eingabeaufforderung die batch ausführe, aber wie mache ich es, wenn ich die batch per Doppelklick oder Taskplaner ausführen will.
Ich weiss, ich könnte es auch per Registrykey generell aktivieren, will ich aber eigentlich nicht, weil ich nicht weiss, ob dann die 100 anderen batch-Dateien noch so funktionieren, wie sie sollen.

Danke
Martin
Mitglied: miniversum
29.01.2009 um 13:24 Uhr
Mal ohne getestet zu haben ob das os geht könntest du es so versuchen:
01.
@echo off 
02.
if "%1" equ "" start "" /B cmd \v:on /c "%0" bla & goto:eof 
03.
 
04.
echo ab hier die restliche bisherige Batch
Bitte warten ..
Mitglied: AlbertMinrich
29.01.2009 um 14:49 Uhr
Geniale Zeile.
Funktioniert einwandfrei.

Danke und Gruss
Martin
Bitte warten ..
Mitglied: bastla
29.01.2009 um 15:06 Uhr
... und falls es ein wenig weniger sein darf :
setlocal enabledelayedexpansion
Grüße
bastla
Bitte warten ..
Mitglied: Biber
29.01.2009 um 15:18 Uhr
... um nicht sogar zu sagen
SetLocal DisableDelayedExpansion
... in den Batchen, die nicht verlässlich mit versehentlich aktivierter verzögerter Variablenerweiterung laufen würden.

Grüße
Biber
Bitte warten ..
Mitglied: AlbertMinrich
29.01.2009 um 17:16 Uhr
Tja, das ist natürlich auch nicht schlecht.

Danke
Bitte warten ..
Mitglied: miniversum
29.01.2009 um 21:51 Uhr
setlocal enabledelayedexpansion
Würde sich das nicht auf alle Batch Dateien auswirken die in dieser Zeit laufen / gestartet werden?
Bitte warten ..
Mitglied: bastla
30.01.2009 um 08:21 Uhr
Hallo miniversum!
Würde sich das nicht auf alle Batch Dateien auswirken die in dieser Zeit laufen / gestartet werden?
Da das nächste "endlocal" die Einstellung wieder aufhebt (und beim Beenden eines Batches ein implilzites "endlocal" erfolgt): Nein; nur ein aus diesem Batch gestarteter weiterer Batch übernimmt diese Einstellung ...

Grüße
bastla
Bitte warten ..
Mitglied: miniversum
30.01.2009 um 16:50 Uhr
Ichhabe den Eingangsbeitrag nochmal gelesen udn festgestellt da sich mich zu sehr auf das "in einer Batch" gestürzt habe. Ich habe es so interpretiert das in einer Batch die Verzögerte auslösung aktiviert wird ohne das es in einer anderen aktiviert wird die gestartet wird während die erste läuft.
War woll fehlinterpretiert von mir.
Bitte warten ..
Mitglied: bastla
30.01.2009 um 16:59 Uhr
Hallo miniversum!

Wenn der zweite Batch nicht durch den ersten Batch (dem mit "setlocal enabledelayedexpanison"), sondern tatsächlich nur während der erste Batch noch läuft, gestartet wird, ist für den zweiten Batch "delayedExpansion" nicht aktiviert ...

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
Ä in batch Datei (12)

Frage von BergEnte zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (19)

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

Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (19)

Frage von patz223 zum Thema Windows Userverwaltung ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...

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

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