Gibt es eine Möglichkeit, alle Umgebungsvariablen in einem Batch-Skript zu verschieben und zu platzieren? Zum Beispiel möchte ich so etwas machen:
pushEnvironmentVariables
call "%VS140COMNTOOLS%\vsvars32.bat"
(do some stuff...)
popEnvironmentVariables
pushEnvironmentVariables
call "%VS90COMNTOOLS%\vsvars32.bat"
(do some other stuff...)
popEnvironmentVariables
batch
environment-variables
שלומי שטיין
quelle
quelle
PATH
- nur zum Beispiel oder aus irgendeinem Grund. Ich interessiere mich besonders für Push / Pop der Pfadvariablen. Gibt es etwas, das gegen Backup / Restore sprichtPATH
?Ein bisschen spät zur Szene, aber hier geht es trotzdem. Im Folgenden finden Sie eine Implementierung einer Stapeldatenstruktur in Windows-Batch-Skripten.
Eigenschaften:
Ich verwende den Stapel in meinen Batchdateien, um Unterprogrammaufrufe zu verfolgen. Jede Unterroutine in meinen Batchdateien beginnt mit Call: Push% 0 , wodurch der Name der aktuellen Unterroutine auf den Stapel geschoben wird und mit Call: Pop endet .
Einige mögen es als Over-Kill für Batch-Scripting empfinden, aber ich habe es genossen, es zu erstellen, und ich hoffe, jemand wird dies nützlich finden, viel Spaß .
Um alle Umgebungsvariablen zu pushen, die Sie aufrufen können: PushAllEnvironmentVariables, um alle Umgebungsvariablen wiederherzustellen, können Sie PopAllEnvironmentVariables aufrufen
quelle
For /f "Tokens=* Delims=" %%a In ('Set') Do Call :Push "%%a"
So stellen Sie alle Umgebungsvariablen wieder her, die Sie verwenden können:For /l %%a In (!$Stack[0]!,-1,1) Do (Set !$Stack[%%a]!)
Ich habe die Antwort aktualisiert, um 2 Unterroutinen einzuschließen, die dies implementieren.