Skip to content

Instantly share code, notes, and snippets.

@hzi-dev
Forked from cl4rk3/batch.properties
Created September 29, 2019 10:35
Show Gist options
  • Save hzi-dev/fed64267ec4ab6f48af6c694983223b6 to your computer and use it in GitHub Desktop.
Save hzi-dev/fed64267ec4ab6f48af6c694983223b6 to your computer and use it in GitHub Desktop.

Revisions

  1. @cl4rk3 cl4rk3 created this gist Aug 14, 2010.
    5 changes: 5 additions & 0 deletions batch.properties
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,5 @@
    PROJECT_ROOT=C:\development
    JAVA_VERSION=1.5.0_11
    JAVA_HOME=%PROJECT_ROOT%\java%JAVA_VERSION%
    ANT_HOME=%PROJECT_ROOT%\tools\apache-ant-1.8.1
    PATH=%JAVA_HOME%/bin;%PATH%;%ANT_HOME%/bin;
    74 changes: 74 additions & 0 deletions winvarset.bat
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,74 @@
    @ECHO OFF
    ::Sets environment variables
    :: Command Extensions must be enabled
    :: > CMD /e:on
    :: Special thanks to http://ss64.com/nt/

    SET PROPERTIES_FILE=batch.properties

    IF [%1]==[] GOTO SHOW_HELP
    IF /I %1==set GOTO SET_ENVIRONMENT_VARIABLES
    IF /I %1==revert GOTO REVERT_ENVIRONMENT_VARIABLES
    IF /I %1==clean GOTO CLEAN_ENVIRONMENT_VARIABLES

    :SET_ENVIRONMENT_VARIABLES
    ECHO Setting environment variables defined in %PROPERTIES_FILE%

    FOR /F "TOKENS=1,2 DELIMS==" %%G IN (%PROPERTIES_FILE%) DO (
    CALL :SET_VARIABLES %%G %%H
    )
    GOTO END

    :REVERT_ENVIRONMENT_VARIABLES
    ECHO Reverting environment variables to _BACKUP versions
    FOR /F "TOKENS=1,2 DELIMS==" %%G IN (%PROPERTIES_FILE%) DO (
    CALL :REVERT_PERSISTANT_VARIABLES %%G %%H
    )
    GOTO END

    :CLEAN_ENVIRONMENT_VARIABLES
    ECHO Cleaning defined environment variables
    FOR /F "TOKENS=1,2 DELIMS==" %%G IN (%PROPERTIES_FILE%) DO (
    CALL :CLEAN_PERSISTANT_VARIABLES %%G %%H
    CALL :CLEAN_CURRENT_VARIABLES %%G %%H
    )
    GOTO END

    ::Looped methods
    :SET_VARIABLES
    IF NOT "[%1]"=="[]" (
    IF NOT "%2"=="%1" (
    ECHO %1 already set. Backing up current setting to %1_BACKUP.
    SETX %1_BACKUP %1
    ) ELSE (
    ECHO %1 is already set to %2
    )
    )
    ECHO Setting %1 to %2
    CALL SETX %1 %2
    CALL SET %1=%2
    GOTO:EOF

    :REVERT_PERSISTANT_VARIABLES
    IF NOT "[%1]"=="[]" (
    IF NOT "%1"=="%1_BACKUP" (
    ECHO Reverting %1 from %2 to %1_BACKUP
    SETX %2 %1_BACKUP
    SET %2=%1_BACKUP
    ) ELSE (
    ECHO %1 is already equal to %1_BACKUP
    )
    ) ELSE (
    SET %1_BACKUP=NOT_SET
    )
    GOTO:EOF

    :CLEAN_PERSISTANT_VARIABLES
    ECHO Removing %1
    REG delete HKCU\Environment /V %1
    GOTO:EOF

    :END
    CHOICE /C:YN /M "Would you like to close this command window"
    IF errorlevel 2 GOTO:EOF
    IF errorlevel 1 EXIT 0