Merge branch 'develop' into new-update-script

This commit is contained in:
Alan Mason 2017-11-19 02:52:23 -08:00
commit 8d287f5d3f

View file

@ -34,6 +34,7 @@ if /i "%PROCESSOR_ARCHITECTURE%" == "AMD64" set "ARCH=64"
set "SEVEN_ZIP=%bin%\7-Zip\7za.exe" set "SEVEN_ZIP=%bin%\7-Zip\7za.exe"
set "CON=%bin%\ConEmu\ConEmu.exe" set "CON=%bin%\ConEmu\ConEmu.exe"
set "FASTCOPY=%bin%\FastCopy\FastCopy.exe" set "FASTCOPY=%bin%\FastCopy\FastCopy.exe"
set "POWERSHELL=%systemroot%\system32\WindowsPowerShell\v1.0\powershell.exe"
set "PYTHON=%bin%\Python\x32\python.exe" set "PYTHON=%bin%\Python\x32\python.exe"
if %ARCH% equ 64 ( if %ARCH% equ 64 (
set "SEVEN_ZIP=%bin%\7-Zip\7za64.exe" set "SEVEN_ZIP=%bin%\7-Zip\7za64.exe"
@ -65,15 +66,19 @@ if /i not "%L_NCMD%" == "True" (set "L_NCMD=")
if /i not "%L_WAIT%" == "True" (set "L_WAIT=") if /i not "%L_WAIT%" == "True" (set "L_WAIT=")
:RelaunchInConEmu :RelaunchInConEmu
if not defined IN_CONEMU ( set USE_CONEMU=True
if not defined L_NCMD ( if defined IN_CONEMU set "USE_CONEMU="
if defined L_NCMD set "USE_CONEMU="
if "%L_TYPE%" == "PSScript" set "USE_CONEMU="
if "%L_TYPE%" == "PyScript" set "USE_CONEMU="
if defined USE_CONEMU (
set "con_args=-new_console:n" set "con_args=-new_console:n"
rem If in DEBUG state then force ConEmu to stay open rem If in DEBUG state then force ConEmu to stay open
if defined DEBUG (set "con_args=!con_args! -new_console:c") if defined DEBUG (set "con_args=!con_args! -new_console:c")
set IN_CONEMU=True set IN_CONEMU=True
start "" "%CON%" -run ""%~0" %*" !con_args! || goto ErrorUnknown start "" "%CON%" -run ""%~0" %*" !con_args! || goto ErrorUnknown
exit /b 0 exit /b 0
)
) )
:CheckLaunchType :CheckLaunchType
@ -85,7 +90,6 @@ if /i "%L_TYPE%" == "QuickBooks" (goto LaunchQuickBooksSetup)
if /i "%L_TYPE%" == "Program" (goto LaunchProgram) if /i "%L_TYPE%" == "Program" (goto LaunchProgram)
if /i "%L_TYPE%" == "PSScript" (goto LaunchPSScript) if /i "%L_TYPE%" == "PSScript" (goto LaunchPSScript)
if /i "%L_TYPE%" == "PyScript" (goto LaunchPyScript) if /i "%L_TYPE%" == "PyScript" (goto LaunchPyScript)
if /i "%L_TYPE%" == "PywScript" (goto LaunchPywScript)
goto Usage goto Usage
:LaunchConsole :LaunchConsole
@ -190,12 +194,27 @@ rem NOTE: This should always result in path=%bin%\Scripts. Exceptions are unsupp
call :TestPath || goto ErrorProgramNotFound call :TestPath || goto ErrorProgramNotFound
rem Set args rem Set args
set "script=%_path%\%L_ITEM%" set "script=%_path%\%L_ITEM%"
set "ps_args=-ExecutionPolicy Bypass -File "%script%" -NoProfile" set "ps_args=-ExecutionPolicy Bypass -NoProfile"
if defined L_ELEV (set "ps_args=%ps_args% -new_console:a -new_console:n")
if defined L_WAIT (set "ps_args=%ps_args% -Wait")
if not exist "%script%" goto ErrorScriptNotFound if not exist "%script%" goto ErrorScriptNotFound
rem Run program and catch error(s) if defined L_ELEV (
start "" "%CON%" -run %systemroot%\system32\WindowsPowerShell\v1.0\powershell.exe %ps_args% || goto ErrorUnknown call :DeQuote script
mkdir "%bin%\tmp" 2>nul
rem Create a temporary VB script to elevate the specified program
echo Set UAC = CreateObject^("Shell.Application"^) > "%bin%\tmp\Elevate.vbs"
if defined L_NCMD (
rem use Powershell's window instead of %CON%
echo UAC.ShellExecute "%POWERSHELL%", "%ps_args% -File "!script!"", "", "runas", 3 >> "%bin%\tmp\Elevate.vbs"
) else (
echo UAC.ShellExecute "%CON%", "-run %POWERSHELL% %ps_args% -File "!script!" -new_console:n", "", "runas", 1 >> "%bin%\tmp\Elevate.vbs"
)
"%systemroot%\System32\cscript.exe" //nologo "%bin%\tmp\Elevate.vbs" || goto ErrorUnknown
) else (
if defined L_NCMD (
start "" "%POWERSHELL%" %ps_args% -File "%script%" || goto ErrorUnknown
) else (
start "" "%CON%" -run "%POWERSHELL%" %ps_args% -File "%script%" -new_console:n || goto ErrorUnknown
)
)
goto Exit goto Exit
:LaunchPyScript :LaunchPyScript
@ -204,36 +223,25 @@ rem NOTE: This should always result in path=%bin%\Scripts. Exceptions are unsupp
call :TestPath || goto ErrorProgramNotFound call :TestPath || goto ErrorProgramNotFound
rem Set args rem Set args
set "script=%_path%\%L_ITEM%" set "script=%_path%\%L_ITEM%"
set "py_args=-new_console:n"
if not exist "%script%" goto ErrorScriptNotFound if not exist "%script%" goto ErrorScriptNotFound
if defined L_ELEV ( if defined L_ELEV (
call :DeQuote script call :DeQuote script
rem Create a temporary VB script to elevate the specified program
mkdir "%bin%\tmp" 2>nul mkdir "%bin%\tmp" 2>nul
echo Set UAC = CreateObject^("Shell.Application"^) > "%bin%\tmp\Elevate.vbs"
echo UAC.ShellExecute "%CON%", "-run %PYTHON% !script! %py_args%", "", "runas", 1 >> "%bin%\tmp\Elevate.vbs"
"%systemroot%\System32\cscript.exe" //nologo "%bin%\tmp\Elevate.vbs" || goto ErrorUnknown
) else (
start "" "%CON%" -run "%PYTHON%" "%script%" %py_args% || goto ErrorUnknown
)
goto Exit
:LaunchPywScript
rem Test L_PATH and set %_path%
rem NOTE: This should always result in path=%bin%\Scripts. Exceptions are unsupported.
call :TestPath || goto ErrorProgramNotFound
rem Set args
set "script=%_path%\%L_ITEM%"
if not exist "%script%" goto ErrorScriptNotFound
if defined L_ELEV (
call :DeQuote script
rem Create a temporary VB script to elevate the specified program rem Create a temporary VB script to elevate the specified program
mkdir "%bin%\tmp" 2>nul
echo Set UAC = CreateObject^("Shell.Application"^) > "%bin%\tmp\Elevate.vbs" echo Set UAC = CreateObject^("Shell.Application"^) > "%bin%\tmp\Elevate.vbs"
if defined L_NCMD (
rem use Python's window instead of %CON%
echo UAC.ShellExecute "%PYTHON%", "!script!", "", "runas", 3 >> "%bin%\tmp\Elevate.vbs" echo UAC.ShellExecute "%PYTHON%", "!script!", "", "runas", 3 >> "%bin%\tmp\Elevate.vbs"
) else (
echo UAC.ShellExecute "%CON%", "-run %PYTHON% !script! -new_console:n", "", "runas", 1 >> "%bin%\tmp\Elevate.vbs"
)
"%systemroot%\System32\cscript.exe" //nologo "%bin%\tmp\Elevate.vbs" || goto ErrorUnknown "%systemroot%\System32\cscript.exe" //nologo "%bin%\tmp\Elevate.vbs" || goto ErrorUnknown
) else ( ) else (
start "" "%PYTHON%" "%script%" /max || goto ErrorUnknown if defined L_NCMD (
start "" "%PYTHON%" "%script%" || goto ErrorUnknown
) else (
start "" "%CON%" -run "%PYTHON%" "%script%" -new_console:n || goto ErrorUnknown
)
) )
goto Exit goto Exit
@ -248,9 +256,6 @@ echo. QuickBooks Year Product [L_CHECK] [L_NCMD]
echo. Program Working Dir Program Args [L_CHECK] [L_ELEV] [L_NCMD] [L_WAIT] echo. Program Working Dir Program Args [L_CHECK] [L_ELEV] [L_NCMD] [L_WAIT]
echo. PSScript Scripts Script [L_CHECK] [L_ELEV] [L_NCMD] echo. PSScript Scripts Script [L_CHECK] [L_ELEV] [L_NCMD]
echo. PyScript Scripts Script [L_CHECK] [L_ELEV] [L_NCMD] echo. PyScript Scripts Script [L_CHECK] [L_ELEV] [L_NCMD]
echo. PywScript Scripts Script [L_CHECK] [L_ELEV] [L_NCMD]
echo.
echo. NOTE: PywScript uses Python's window instead of %CON%
echo. echo.
goto Abort goto Abort