Allow adding or removing individual environment variables.
[nssm.git] / README.txt
index 2158741..12a8393 100644 (file)
@@ -638,9 +638,10 @@ would have the same effect.
 \r
 Non-standard parameters\r
 -----------------------\r
 \r
 Non-standard parameters\r
 -----------------------\r
-The AppEnvironment and AppEnvironmentExtra parameters recognise an\r
-additional argument when querying the environment.  The following syntax\r
-will print all extra environment variables configured for a service\r
+The AppEnvironment, AppEnvironmentExtra and Environment parameters\r
+recognise an additional argument when querying the environment.  The\r
+following syntax will print all extra environment variables configured\r
+for a service\r
 \r
     nssm get <servicename> AppEnvironmentExtra\r
 \r
 \r
     nssm get <servicename> AppEnvironmentExtra\r
 \r
@@ -655,6 +656,39 @@ KEY=VALUE pair in separate command line arguments.  For example:
 \r
     nssm set <servicename> AppEnvironment CLASSPATH=C:\Classes TEMP=C:\Temp\r
 \r
 \r
     nssm set <servicename> AppEnvironment CLASSPATH=C:\Classes TEMP=C:\Temp\r
 \r
+Alternatively the KEY can be prefixed with a + or - symbol to respectively\r
+add or remove a pair from the block.\r
+\r
+The following two lines set CLASSPATH and TEMP:\r
+\r
+    nssm set <servicename> AppEnvironment CLASSPATH=C:\Classes\r
+    nssm set <servicename> AppEnvironment +TEMP=C:\Temp\r
+\r
+If the key is already present, specifying +KEY will override the value\r
+while preserving the order of keys:\r
+\r
+    nssm set <servicename> AppEnvironment +CLASSPATH=C:\NewClasses\r
+\r
+The following syntax removes a single variable from the block while\r
+leaving any other variables in place.\r
+\r
+    nssm set <servicename> AppEnvironment -TEMP\r
+\r
+Specifying -KEY=VALUE will remove the variable only if the existing\r
+value matches.\r
+\r
+The following syntax would not remove TEMP=C:\Temp\r
+\r
+    nssm set <servicename> AppEnvironment -TEMP=C:\Work\Temporary\r
+\r
+The + and - symbols are valid characters in environment variables.\r
+The syntax :KEY=VALUE is equivalent to KEY=VALUE and can be used to\r
+set variables which start with +/- or to explicitly reset the block in\r
+a script:\r
+\r
+    nssm set <servicename> AppEnvironment :CLASSPATH=C:\Classes\r
+    nssm set <servicename> AppEnvironment +TEMP=C:\Temp\r
+\r
 \r
 The AppExit parameter requires an additional argument specifying the exit\r
 code to get or set.  The default action can be specified with the string\r
 \r
 The AppExit parameter requires an additional argument specifying the exit\r
 code to get or set.  The default action can be specified with the string\r