Choco是什么

Choco 的全称是 Chocolatey(巧克力),是一个 Windows 上的包管理器,可以方便地在 Windows 上安装和管理各种软件包,类似于 Linux 上的 apt 或者 yum。使用 Chocolatey 可以快速安装和更新常用的软件,比如 Python、Git、Node.js 等,避免手动下载和安装软件的繁琐流程。
正好可以解决我的烦恼,( •̀ ω •́ )✧
(为什么我没有早点看到它)

如何安装

1.打开 PowerShell(以管理员权限运行)。
2.运行以下命令来下载和安装 Choco:

1
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

或者使用 cmd 终端(以管理员身份运行)

1
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

注意:在执行安装命令时,请确保网络连接正常,否则可能会出现下载失败的情况。

3.打开一个新的终端,输入choco,如果能够正常输出帮助信息,表示 Choco 已经安装成功。

怎么安装软件

打开cmd或者PowerShell(最好以管理员身份运行)

1
2
choco install [PackageName]
cinst [PackageName]

tips: cinstchoco install的缩写哦

如果需要指定安装的版本

1
2
choco install [PackageName] --version <version>
cinst [PackageName] --version <version>

更多软件请到这里查看~
https://community.chocolatey.org/packages

注意

默认会安装在C盘中,如果你不想安装在C盘,就比如我。Choco提供了自定义软件的安装的位置
临时使用

1
choco install [PackageName] --install-directory=<path_to_directory>

一劳永逸
打开windows的环境变量>新建(N)>变量名填​ChocolateyToolsLocation​,变量的值就填你想让软件安装到的位置,例如:D:\Program Files

环境变量

其中我觉得最赞的应该就是这个了——刷新环境变量功能
有时候安装完一些软件还要重启一遍才会生效,太麻烦了

安装了Choco之后,我们就可以使用

1
refreshenv

来刷新环境变量啦,就不用重启来使环境变量生效了。


如果你只想使用刷新环境变量的功能,这里提供了一个脚本,你只需要把它保存到后缀为 .bat或.cmd 的文件中,运行就可以刷新环境变量啦

展开/收起
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
@echo off
::
:: RefreshEnv.cmd
::
:: Batch file to read environment variables from registry and
:: set session variables to these values.
::
:: With this batch file, there should be no need to reload command
:: environment every time you want environment changes to propagate

::echo "RefreshEnv.cmd only works from cmd.exe, please install the Chocolatey Profile to take advantage of refreshenv from PowerShell"
echo | set /p dummy="Refreshing environment variables from registry for cmd.exe. Please wait..."

goto main

:: Set one environment variable from registry key
:SetFromReg
"%WinDir%\System32\Reg" QUERY "%~1" /v "%~2" > "%TEMP%\_envset.tmp" 2>NUL
for /f "usebackq skip=2 tokens=2,*" %%A IN ("%TEMP%\_envset.tmp") do (
echo/set "%~3=%%B"
)
goto :EOF

:: Get a list of environment variables from registry
:GetRegEnv
"%WinDir%\System32\Reg" QUERY "%~1" > "%TEMP%\_envget.tmp"
for /f "usebackq skip=2" %%A IN ("%TEMP%\_envget.tmp") do (
if /I not "%%~A"=="Path" (
call :SetFromReg "%~1" "%%~A" "%%~A"
)
)
goto :EOF

:main
echo/@echo off >"%TEMP%\_env.cmd"

:: Slowly generating final file
call :GetRegEnv "HKLM\System\CurrentControlSet\Control\Session Manager\Environment" >> "%TEMP%\_env.cmd"
call :GetRegEnv "HKCU\Environment">>"%TEMP%\_env.cmd" >> "%TEMP%\_env.cmd"

:: Special handling for PATH - mix both User and System
call :SetFromReg "HKLM\System\CurrentControlSet\Control\Session Manager\Environment" Path Path_HKLM >> "%TEMP%\_env.cmd"
call :SetFromReg "HKCU\Environment" Path Path_HKCU >> "%TEMP%\_env.cmd"

:: Caution: do not insert space-chars before >> redirection sign
echo/set "Path=%%Path_HKLM%%;%%Path_HKCU%%" >> "%TEMP%\_env.cmd"

:: Cleanup
del /f /q "%TEMP%\_envset.tmp" 2>nul
del /f /q "%TEMP%\_envget.tmp" 2>nul

:: capture user / architecture
SET "OriginalUserName=%USERNAME%"
SET "OriginalArchitecture=%PROCESSOR_ARCHITECTURE%"

:: Set these variables
call "%TEMP%\_env.cmd"

:: Cleanup
del /f /q "%TEMP%\_env.cmd" 2>nul

:: reset user / architecture
SET "USERNAME=%OriginalUserName%"
SET "PROCESSOR_ARCHITECTURE=%OriginalArchitecture%"

echo | set /p dummy="Finished."
echo .

如果还有其他问题,欢迎补充~ ο(=•ω<=)ρ⌒☆