AlvinSeville7cf

installer sample.bat

Mar 17th, 2021 (edited)
280
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 9.13 KB | None | 0 0
  1. @echo off
  2. setlocal
  3.  
  4. call :init
  5. set /a "error_status=%errorlevel%"
  6. if %error_status% neq 0 exit /b %error_status%
  7.  
  8. set /a "i=0"
  9. :copy_options
  10.     set "option=%~1"
  11.     if defined option (
  12.         set "args[%i%]=%option%"
  13.         shift
  14.         set /a "i+=1"
  15.         goto copy_options
  16.     )
  17. set /a "args_count=i"
  18.  
  19. set /a "i=0"
  20. :main_loop
  21.     set /a "j=i + 1"
  22.     call set "option=%%args[%i%]%%"
  23.     call set "value=%%args[%j%]%%"
  24.  
  25.     if %i% geq %args_count% goto main_loop_break
  26.  
  27.     set /a "is___version=FALSE"
  28.  
  29.     if "%option%" == "--version" set /a "is___version=TRUE"
  30.     if "%option%" == "-v" set /a "is___version=TRUE"
  31.  
  32.     if %is___version% equ %TRUE% (
  33.         call :__version_handler
  34.         exit /b %SUCCESS_EC%
  35.     )
  36.  
  37.     set /a "is___help=FALSE"
  38.  
  39.     if "%option%" == "--help" set /a "is___help=TRUE"
  40.     if "%option%" == "-h" set /a "is___help=TRUE"
  41.  
  42.     if %is___help% equ %TRUE% (
  43.         call :__help_handler
  44.         exit /b %SUCCESS_EC%
  45.     )
  46.  
  47.     set /a "is___uninstall=FALSE"
  48.  
  49.     if "%option%" == "--uninstall" set /a "is___uninstall=TRUE"
  50.     if "%option%" == "-u" set /a "is___uninstall=TRUE"
  51.  
  52.     if %is___uninstall% equ %TRUE% (
  53.         set /a "is_uninstall=TRUE"
  54.         set /a "i+=1"
  55.         goto main_loop
  56.     )
  57.  
  58.     echo %WRONG_OPTION_SPECIFIED_MSG%
  59.     exit /b %WRONG_OPTION_SPECIFIED_EC%
  60.  
  61. :main_loop_break
  62. if %is_uninstall% equ %TRUE% (
  63.     if not exist "%directory%" (
  64.        echo %BATCHTEMPLATE_IS_NOT_INSTALLED_MSG%
  65.        exit /b %BATCHTEMPLATE_IS_NOT_INSTALLED_EC%
  66.     )
  67.     setlocal enabledelayedexpansion
  68.     call setx PATH "%%PATH:%directory%=%%" > nul
  69.     echo y| rd /s "%directory%" 2> nul > nul
  70.     set /a "error_status=!errorlevel!"
  71.     if !error_status! equ 0 (
  72.         echo batchtemplate successfully uninstalled from %directory%.
  73.     ) else (
  74.         echo Unexpected error uccured. Possibly there is no access to %directory% folder or another process uses it. Please run installer as admin and kill processes use %directory% folder.
  75.     )
  76.     exit /b !error_status!
  77. )
  78.  
  79. if exist "%directory%" (
  80.     setlocal enabledelayedexpansion
  81.     choice /m "Do you want reinstall batchtemplate in %directory%?"
  82.     set /a "answer=!errorlevel!"
  83.     if !answer! equ 2 (
  84.         echo %BATCHTEMPLATE_REINSTALL_REJECTED_MSG%
  85.         exit /b %BATCHTEMPLATE_REINSTALL_REJECTED_EC%
  86.     )
  87.     if !answer! equ 1 (
  88.         echo y| rd /q /s "%directory%" 2> nul > nul
  89.         set /a "error_status=!errorlevel!"
  90.         if !error_status! neq 0 (
  91.             echo Unexpected error uccured. Possibly there is no access to %directory% folder or another process uses it. Please run installer as admin and kill processes use %directory% folder.
  92.             exit /b !error_status!
  93.         )
  94.     )
  95. )
  96.  
  97. mkdir "%directory%"
  98. chdir "%directory%"
  99.  
  100. certutil -decode "%self%" "%archive_name%" > nul
  101. 7z x "%archive_name%" > nul
  102. setx PATH "%directory%;%PATH%" > nul
  103. del /q "%archive_name%"
  104. exit /b %SUCCESS_EC%
  105.  
  106. :init
  107.     set /a "SUCCESS_EC=0"
  108.     set /a "WRONG_OPTION_SPECIFIED_EC=1"
  109.     set /a "SEVENZ_COMMAND_NOT_FOUND_EC=2"
  110.     set /a "BATCHTEMPLATE_IS_NOT_INSTALLED_EC=3"
  111.     set /a "BATCHTEMPLATE_REINSTALL_REJECTED_EC=4"
  112.  
  113.     set "WRONG_OPTION_SPECIFIED_MSG=Option you've passed is not recognized."
  114.     set "SEVENZ_COMMAND_NOT_FOUND_MSG=7z command isn't found. Please install 7-Zip archiver."
  115.     set "BATCHTEMPLATE_IS_NOT_INSTALLED_MSG=batchtemplate isn't installed to uninstall it."
  116.     set "BATCHTEMPLATE_REINSTALL_REJECTED_MSG=batchtemplate reinstall is rejected."
  117.  
  118.     set /a "TRUE=0"
  119.     set /a "FALSE=1"
  120.  
  121.     set "self=%~f0"
  122.     set "directory=C:\Program Files\AlvinSeville7cfSoft\batchtemplate\"
  123.     set "temp=temp.txt"
  124.     set "archive_name=release.7z"
  125.  
  126.     set /a "is_uninstall=FALSE"
  127.     7z --help 2> nul > nul || (
  128.        echo %SEVENZ_COMMAND_NOT_FOUND_MSG%
  129.        exit /b %SEVENZ_COMMAND_NOT_FOUND_EC%
  130.     )
  131. exit /b %SUCCESS_EC%
  132.  
  133. :__version_handler
  134.     echo 1.0 - 2021
  135. exit /b %SUCCESS_EC%
  136.  
  137. :__help_handler
  138.     echo Description:
  139.     echo    Installes or uninstalles batchtemplate script.
  140.     echo.
  141.     echo Syntax:
  142.     echo    - installer.bat [options]
  143.     echo.
  144.     echo Options:
  145.     echo    - -u^|--uninstall - specifies whether uninstallation is performed instead of installation
  146.     echo.
  147.     echo Examples:
  148.     echo    installer.bat --version
  149.     echo    installer.bat
  150.     echo    installer.bat --uninstall
  151.     echo.
  152.     echo Author:
  153.     echo    Alvin Seville ^<AlvinSeville7cf@gmail.com^>
  154. exit /b %SUCCESS_EC%
  155.  
  156. -----BEGIN CERTIFICATE-----
  157. N3q8ryccAASq0nSA0gwAAAAAAABqAAAAAAAAAHJ7q4rgTR4Myl0AIBlIZqfhdN8P
  158. +4BvJeqclM/eTF3smM1s3I1VK79ow1EldSi90af1uaYKDs3kfLjuWN7DBdBT0N25
  159. 5u7JbYruBdE2Rc5QO32U362nrYT/fWedGSv3gIHqK60qV2lm3Df+X0cxLQuLvh2y
  160. GfAYgnI/Apxys1wkgzxXehL3U2/sk7z8XSP4XB9tFkxbx3AFF0gXli8MiCi9VoWv
  161. fLrpQJJSiwfdKtoKx8uCdBHMRrSeWY+Gz0J8+go/OnivZsJCInVuL8abe/hOVOEI
  162. RbYwzj95a8aBBE7RmIJ20MdU03NiBP+/Qzh3cbqg6Ji0RIiR0Bz5G/su/nXfe70O
  163. 3QlNKVeBy3X0yKI/sPJzRvg6i9RTEvk9ojCkOsfn7veqr/pBAngTdQXOEzmCwXl8
  164. jJ3+LYISaCBnG5GOyjzFiD0ygbnxLV/ZjwXSd3UNf4Mhrt2xPd8ytgfyxyNv1XWI
  165. LhgjnZVtbwhd5QeRjm7qSkuPRFdOcChSO+hGjptwpPhLJdgSljbFTP1c2KgRfTPQ
  166. AOAPU3jyP2+aICLu3jKwVytZntPl2UtxT6HyXUNDdpne27Wd0UeJTuI8V5l9YxnW
  167. liTG8dabynztRohCGgF4i2lZzbSSOAnCgQb7TqhMO/r9A4z1afi10yXH7wL8SEtE
  168. JIg2Vj9hd2U9yljSGl3lqbdQzp5YGL7WVmVl8N6F+E/oxIJjnyOnKzSbYOP4l+5i
  169. BCqLSK3eNURCvgH55ibm9c7/PptZoXUm8Pu5+Obb5KnVtCocFIHd0rT+umC7WjNK
  170. CeozPDjgJpP3JnBpZqE2SPLbSqypmSpoXkvrZQF+7yheqy03KJpyDPqKZ7CVjGNo
  171. NLiB0FiYUThwmR0Gv6yxwk7AiEMGUtxWhPMQSNKfm5rRWEThHL44vA3SElBgWE/w
  172. NHGg9az6bJODjCHBhbq9svR2uA4gR6wj/CPDKjvtDST6hPjX/gbbOwW0X2hbRkuZ
  173. iMr/VuVz4r4zmnE+EJMSQLNUT3cANnU1Ur2coE0Ai1wXz6bAeSa/W5JMqKdkOjwU
  174. otvXdqm8rHcZA5H+fGwPNl9+XCViUu55etEUBKKrJJsvwWeV0yk1XwTjRNI8M1Nr
  175. mZDiYfu0bUUK4Kmf6kg4P77r5j9AiXReBTlFHpYJxBJRiP/xPHIc7/EGszqrjVef
  176. 9sweR5hvxzHwgRoAbt2xEf6pySmhL6Xm+zM9sE+CSAPfKiLedbDFeRmC6loxb4qa
  177. KB4sNhpbrNp536hdvPCaxTkiJzyieck2W5Agiu+A/VxftcLWKGmR8qs+JkirScSl
  178. Znoow74MX8TCEKLfDTQn1nMCr+RQTA91gHpsnP3AKwL8imaavk5WFFgugmUZTKY3
  179. ToubeJGgQci9b8T5hZ6GhEAuC7nWAWZRU/k5gi6Ap5kEHeb9buoxUKs2XTLk5xdw
  180. kQf1UE7qY6C7b1bBhddImYrTIQ8vz+gpBe3ajnywHPy84Ftg+nDi3mLu/rW/Wcqt
  181. xzYboZwZkU+xlxeOswwWr3soU7NTjeak2HXjaBGTu/7zcTklzW8Xjg0mwDiTLoKE
  182. Hpz+UXzQn3mnfOkgeI1kBqe4/K65tb6zoLeEv4uVlXHqmEDBXXTvrSy48e/F40aR
  183. Ryc5vulVPNbc+V25bTS8KzqAW7JmMBkZnJ2/u+qz4UYf6IQIhSHuuP7abFDerMjo
  184. Hi6UJ3298pCFSeIdCjY6usU0qhp0q6e/455J/BKtwcIlbmXU8Zw6WiO2GPc6HqrU
  185. t1tdUQ891aB2WBZskeOQKS7/WnMPAcsU382dLx0rEw5y1M34qWvj5WJ7oQLU6XtS
  186. QKXJiKFE012Fcp2Zmul2yNkpzbB71Pv7QTfCCQ8a6EU9JOffseHrp5lLb3M6J+oG
  187. R7sb1hmj+Zj5oroKfgNOeXoyN/bL8HdEvp8NVEfirbzR1XxjFOowQ2twU8JHRne0
  188. reav3FlZ3woEf5PE44Fxm/8bUwH54/GpR0HPgiSZ0sc7I1Zg6yJWRXACyRBtWRM8
  189. ox+xPYt7lXtmtrbkG/JJNG5Vyy5GLxiB0JotQzkqSd8bAUssgfw60vW4wgIzy83I
  190. U0B09z5LA9KnZbhof6fnIaCUeOLILVa/EsAdMSr8YNKAae0mU3GrtGwtEgrkqiOd
  191. TgBPCKf4Tm+V+acUMRrn3vVy171iOjOVp48bOEhlKDls7xj/8gWXXVefwA4xf3fz
  192. mkOJfzAVLhHLzutBx6JwU911TmpytvZnKBhpjomswCM13YDjr2qd5GQSu/2zNRPs
  193. f5NYqFBJUq1TE4t4d8bXezn5X3GrKDCepCYOFf3uyy7N4bOUJUkm2G1ySI+zpBXu
  194. NG/zafkHxuew0uCkwJ3MFVy9CDzrLvPvlinGu7eLkUvOII2Qd7Ulm9X/Py4+/2US
  195. ldn4qmSBw7dU+89nkdv9GAxuxNqYtVOxKbxmvAyKXDOE/PZCWNNiOtt5mzCusp2I
  196. FB14nkpmYaRdTtIlANRasdugy6+NtOr3JqyAT5XBzedIh7s8Rq5a9V5BGgQG5AGF
  197. DV2CklayZY0L/RtR5TsFAUfE7kssezRw59ntlMV8vtv1o2WkC9sK+MecLIQURKY9
  198. UEZI76dBqpWUXvN54nyajC/NVbJoaWusvCuftdEkZYVL4q0LJmq+MlfUAe8DrJCA
  199. 5Hgd4gR08ViqzEe+U6hp5cK+rCdH0hI8ocPnB5GhzUBESCz/sNm6H49E+bOFN9Ei
  200. N3FlJsUsvIOzmqPzb80aX8pWi6zuqt0QdTpD48sWF5QUtqeafJ/q2XJdUQZMeuHK
  201. 7B+LErj3eTxbVNs3szS3IqdEMg7YttFZ6RsXJbqAvcRmySdpQMtqAJNM1XesBV/s
  202. GL4M/rzgPjRRRkJCPzO/Ta+5ur1Au5X72AGq23voeGJdJo5aw5ZBxyZf6G6WCBBB
  203. EsYOHGnAkW59Qf1OpDKstivxpRHza8oC7cPonAMm4iYaMC3ljeC2IaZJs1WXcnSd
  204. Ca51pk7ZzBl6IQrS1XWSUCJb9qAtJa63MobzexbQbi2JiYfJhsqoSN9jhNXnaxXc
  205. WEFG3FU9rrFdiY6hrbc3fPgTBIbro3NMnbMaLMSdAdu3FH48q7FBoQoVf9IyHkjv
  206. XU5AKuKEq/mAwXhPdPqII2bRE4UsrMuLA0t+ufZU8bfhZDM5JEgpWVwprjHIy954
  207. C5gsH418v/7pIZMqgjZd/PGXqamM48ubv5Nt6LbyHQ9A2pZGiBSCsIKpXugT/gC1
  208. 3H7ZD7UuFRc0zjMpUq2exbg4zOnPH+85bRTqtsirTO3sTGP8XFVgo5tHS5HOIH1o
  209. yhO9VbkJb4KjWHDYHzGFbqPlYQtDHJ7gFDV1IiJzmr5SQ4JwYM6J8hnkBXEzJSKp
  210. zwZ+S2dpJGvJOO8j8QZ2M9yRELR58NLLIG56g8/l/0mENv2B6wMlUWthNUxrB4rL
  211. RzaOkby73tNK52xw6FNSoVYSoChdan3YI+w7kPX065jVkjtqVuGnHjun2egtTsiL
  212. ZaPYKCwPRBsx9+z5lBJBprnJ30brmqXDfFTT2filzlpxO5IioLRlfTfBZd7XdQeH
  213. knUrVGjoiGGwJSAkNxIYu/Jv/FVYeKBLP/ai8rApLeVmoAPRpzJuTEKWvas76GO1
  214. olPuzrn+jQkTrWgFXrx108UHLU4IN4TgDlJrZzf+X7zw8kUwlbAb5LkkrOpNtdN3
  215. AVxJTBsShdZA/IG4/UGyEXZQjtgOsuymyC9ys2TWUir0putYzuI6h575oJCXWVoM
  216. 6dles1p+f6CP5lbcW9PfyM39jc6SAfJlChd36Tzdkfpm4+aMU1nSJ8pLraUX+X/X
  217. NeJTElz/6Z6/VrrbZ8fNzQEkdDe6347a4G0AGS6YXT+56C/xVnL6p9AhXIeoLua5
  218. s6u9y8oKmINmg0X3Njp6JKqVX8whvZfnhEauXWaOvcWeP7TDzXO3QqFGH6APiM/k
  219. zgy152wwAYi+K3TZsq8wQZa1hbyWvKG/WzJTrN6WHEbrtsD18iVLIpdjJFDFl5QE
  220. nXZGWi4ESRQNEoKiYDsLTKDJJ59ktdqlLAWHR5RhyLYvXhPNZQNpMm9lYvHpgNON
  221. n+wqIqtF25ZbufVx1C09KQ475m4UFRtZg3S9Lab2yb6lRgUgvvRpbwFloSMD+YOs
  222. GGNqM1jAS5ZdWEbRFdbkrPX2IeEBCQVQPBr5XkPle3vRIr9GQ3W/fcqHILKTBTx0
  223. Ggx0PIopsniRQLA2wJYU6X/Oedwrrcz6NOb47uu9N/PIOF0PO6LG65NinlOULLhu
  224. Cm0R4ZYIBMWF1u30aNEYeo+bvav0SXFBtTmj/jrC4ffvmAY86VfXCYhVpRpvMhJU
  225. LmXjk91e96Y0GIv+0dIDUt0BWkZviPNyfFHNTy16Ixnf7T3S2BeI2ie/2Fq5d7ea
  226. vgABBAYAAQmM0gAHCwEAASEhAQUMwB9NAAgKAb973TAAAAUBGQkAAAAAAAAAAAAR
  227. JQBiAGEAdABjAGgAdABlAG0AcABsAGEAdABlAC4AYgBhAHQAAAAUCgEALe3rd0wW
  228. 1wEVBgEAIAAAAAAA
  229. -----END CERTIFICATE-----
  230.  
Add Comment
Please, Sign In to add comment