# project-init
**Repository Path**: Xynrin/project-init
## Basic Information
- **Project Name**: project-init
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-09-18
- **Last Updated**: 2026-09-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 🚀 project-init
**Windows 编程环境一键安装 · 国内高速镜像 · 专为学校机房与新手打造**
一条命令,自动装好 Git、Node.js、Python、Java、Go、Rust、VS Code……
走镜像、不用一个个找安装包、不用手动配环境变量。




👤 作者 / 维护者:[Xynrin (BlackCat)](https://gitee.com/Xynrin) · 🔗 项目主页:[gitee.com/Xynrin/project-init](https://gitee.com/Xynrin/project-init)
---
## 📖 目录
- [它能帮你做什么](#-它能帮你做什么)
- [三步上手(新手看这里)](#-三步上手新手看这里)
- [运行时会看到什么](#-运行时会看到什么)
- [会安装哪些软件](#-会安装哪些软件)
- [装完之后怎么验证](#-装完之后怎么验证)
- [常见问题 FAQ](#-常见问题-faq)
- [关于本脚本:会改动电脑的哪些地方](#-关于本脚本会改动电脑的哪些地方)
- [进阶用法](#-进阶用法)
- [自定义软件清单](#-自定义软件清单)
---
## ✨ 它能帮你做什么
| | 特点 | 说明 |
|---|---|---|
| 🇨🇳 | **国内镜像,下载快** | 清华 TUNA、npmmirror、阿里云、华为云等镜像,不再“下载到一半卡住” |
| 🖱️ | **有菜单,不用记命令** | 方向键 + 空格勾选想装的软件,回车开始 |
| 📊 | **实时进度条** | 每个软件都显示下载进度、网速、剩余时间,以及总体进度 |
| ⏯️ | **断点续传,随时可停** | 断网或关掉窗口也没关系,再运行一次会从断点继续 |
| 🔁 | **重复运行很安全** | 已经装好的软件自动跳过,只补装缺的 |
| 🩺 | **出错有中文提示** | 失败时告诉你可能的原因和解决办法 |
| ⚙️ | **自动配置环境** | 自动设置 PATH、JAVA_HOME,并把 npm/pip/conda/go/cargo 换成国内源 |
| 🖥️ | **自动创建桌面图标** | VS Code、Git Bash、7-Zip、MarkText、Anaconda Prompt 装好后桌面直接有图标 |
---
## 🐣 三步上手(新手看这里)
### 第 1 步:以管理员身份打开 PowerShell
> 右键点击屏幕左下角的 **开始按钮(Windows 图标)** → 选择 **“终端(管理员)”** 或 **“Windows PowerShell(管理员)”** → 弹出的窗口点 **“是”**。
💡 没有管理员权限怎么办?(点击展开)
直接打开普通的 PowerShell 也能用。只是 **Git 和 7-Zip 需要管理员权限**,会被自动跳过,其他软件照常安装。
### 第 2 步:复制下面这行命令,粘贴到窗口里,按回车
```powershell
irm https://gitee.com/Xynrin/project-init/raw/master/install.ps1 | iex
```
> 📋 在 PowerShell 窗口里 **单击鼠标右键** 就能粘贴。
### 第 3 步:跟着菜单操作
屏幕上会出现主菜单:
```text
[1] 一键安装推荐组件(新手推荐)
[2] 自己挑选要安装的软件
[3] 查看各软件当前是否已安装
[4] 关于本脚本(会改动哪些地方、如何卸载)
[5] 只补建桌面图标(已经装好了但桌面上没有图标时用)
[Q] 退出(不做任何改动)
15 秒后自动开始 [1] 一键安装推荐组件,按任意键停止倒计时...
```
- 不知道选什么?**直接按 `1`**,或者什么都不按,15 秒后会自动开始。
- 装完后桌面上会出现软件图标,双击即可打开;命令行工具需要 **关闭窗口,重新打开一个新的终端** 才能用。🎉
- **以前装过、但桌面上没有图标?** 再运行一次命令,在菜单里按 `5`,几秒钟就能补上图标,不会重新安装任何软件。
> 🖱️ **更懒的办法**:下载本仓库的 [`install.cmd`](./install.cmd),**双击运行** 即可。它会自动请求管理员权限,效果和上面一样。
---
## 👀 运行时会看到什么
**自己挑选软件**(菜单 `[2]`):
```text
[↑/↓] 移动 [空格] 勾选/取消 [数字/字母] 直接勾选对应项 [Enter] 下一步
[A] 全选 [N] 全不选 [R] 恢复推荐 [Q/Esc] 返回
> [1] [x] Git for Windows (需管理员)
[2] [x] 7-Zip (需管理员)
[3] [x] Node.js LTS (已安装)
[4] [ ] pnpm
...
--------------------------------------------------------------------
说明: 分布式版本控制系统(npmmirror / 华为云镜像)
位置: C:\Program Files\Git
```
**安装过程中**,每个软件都有清晰的进度:
```text
----------------------------------------------------------------------
总进度 [########------------] 40% 第 4/10 项 已用时 03:12
>> 正在处理: JDK 21 (Temurin) [Language]
说明: Java 21 开发工具包(清华 TUNA / 华为云镜像)
位置: D:\tools\jdk-21
>> 开始下载(下载源: mirrors.tuna.tsinghua.edu.cn)
文件: OpenJDK21U-jdk_x64_windows_hotspot_21.0.5_11.zip (195.3 MB)
快捷键: [S] 跳过这个软件 [P] 暂停/继续 [Q] 结束整个安装
[##########--------------] 42.6% 83.2 MB / 195.3 MB 6.8 MB/s 剩余 00:16
```
| 下载时按键 | 作用 |
|:---:|---|
| `S` | 跳过当前这个软件,继续装下一个 |
| `P` | 暂停 / 继续下载 |
| `Q` | 结束整个安装(会先显示汇总,不会直接关窗口) |
**全部完成后**,会有一张汇总表,并告诉你下一步做什么:
```text
软件 结果 用时 说明
Git for Windows 成功 01:05
Node.js LTS 已安装,跳过 已安装
Go 失败 见下方处理建议
【失败项处理建议】
- Go: 下载失败:请确认能正常打开网页(校园网需先登录)。重新运行会从断点继续……
【接下来要做什么】
1. 关闭当前终端窗口,再重新打开一个,新装的软件才能在命令行里使用
2. 在新终端里输入下面的命令,能看到版本号就说明装好了:
git --version # Git for Windows
```
---
## 📦 会安装哪些软件
| ID | 软件 | 用途 | 需要管理员 | 下载源 | 桌面图标 |
|---|---|---|:---:|---|:---:|
| `git` | Git for Windows | 代码版本管理 | ✅ | npmmirror / 华为云 | Git Bash |
| `7zip` | 7-Zip | 解压缩工具 | ✅ | 官方 / 备用 CDN | 7-Zip |
| `node` | Node.js LTS | 运行 JavaScript | | npmmirror / 清华 TUNA | |
| `pnpm` | pnpm | 前端包管理器(依赖 Node.js) | | npmmirror | |
| `miniconda` | Miniconda3 | Python 环境 | | 清华 TUNA / 阿里云 | Anaconda Prompt |
| `jdk21` | JDK 21 (Temurin) | Java 开发 | | 清华 TUNA / 华为云 | |
| `go` | Go | Go 语言开发 | | 阿里云 / 官方(含 SHA256 校验) | |
| `rust` | Rust (rustup) | Rust 语言开发 | | rsproxy.cn / 清华 / 中科大 | |
| `vscode` | Visual Studio Code | 代码编辑器 | | 微软官方 CDN | VS Code |
| `marktext` | MarkText | Markdown 阅读 / 编辑器 | | gh-proxy.com / ghproxy.net 加速 | MarkText |
| `pip-mirror` | pip 国内源 | 让 `pip install` 变快 | | 清华 TUNA | |
🔧 每个软件会顺手做哪些配置?(点击展开)
| 软件 | 自动配置 |
|---|---|
| Git | `init.defaultBranch=main` |
| Node.js | npm 源 → npmmirror,并把 npm 全局目录加入 PATH |
| Miniconda | conda 源 → 清华 TUNA |
| JDK 21 | 设置 `JAVA_HOME`,管理员模式下置顶到系统 PATH |
| Go | `GOPROXY=https://goproxy.cn,direct` |
| Rust | rustup 与 cargo 源 → rsproxy.cn(稀疏索引) |
| pip | 源 → 清华 TUNA,并升级 pip |
---
## ✅ 装完之后怎么验证
**先关闭终端,重新打开一个新的**,然后逐行输入,能看到版本号就说明装好了:
```powershell
git --version
node -v
pnpm -v
conda --version
java -version
go version
cargo --version
code --version
```
---
## ❓ 常见问题 FAQ
Q1:粘贴命令后出现红字 “在此系统上禁止运行脚本”
先执行下面这行,再重新粘贴安装命令(只对当前窗口生效,不影响系统):
```powershell
Set-ExecutionPolicy Bypass -Scope Process -Force
```
或者直接双击 [`install.cmd`](./install.cmd),它会自动处理。
Q2:提示 “无法连接国内镜像站” / 下载失败
- **校园网**:请先打开浏览器,完成上网认证登录;
- **开了代理 / VPN**:尝试关掉后重新运行;
- 再运行一次同样的命令即可,**已下载的部分会断点续传**,已装好的会自动跳过。
Q3:装完了,但输入 node / git 提示 “无法识别”
新的环境变量需要 **重新打开终端** 才会生效。关闭所有终端窗口后重新打开;还不行就 **注销或重启电脑**。
Q4:Git / 7-Zip 显示 “需管理员,跳过”
右键开始按钮 → “终端(管理员)”,重新运行安装命令即可,其他已装好的软件会自动跳过。
Q5:安装失败,提示 “安装程序返回了错误代码”
通常是 **杀毒软件(360、火绒等)拦截**,或者该软件正在运行。关闭对应程序或暂时退出杀毒软件后重新运行。
Q6:提示 “文件正被另一个进程使用”
通常是 **同时开了两个安装窗口**。脚本会自动处理:以 **最新打开的窗口为准**,自动结束旧窗口及它启动的下载/安装程序,然后继续下载。
如果占用者是杀毒软件(正在扫描安装包),脚本不会强行结束它,而是稍等后自动重试。反复出现时,请把 `D:\project-init\downloads` 加入杀毒软件白名单。
Q7:软件装好了,但桌面上没有图标
旧版本不会创建桌面图标。重新运行安装命令,在主菜单按 **`5`(只补建桌面图标)** 即可,不会重新安装任何软件;也可以直接运行:
```powershell
& ([scriptblock]::Create((irm https://gitee.com/Xynrin/project-init/raw/master/install.ps1))) -Shortcuts
```
> 以 **管理员身份** 运行时,Git Bash、7-Zip 的图标会放到 **公共桌面**,机房里每个登录的用户都能看到;VS Code、MarkText、Anaconda Prompt 装在个人目录,图标只放在当前用户的桌面。
Q8:Rust 编译时报 link.exe not found
Rust 在 Windows 上编译需要 **Visual Studio 生成工具(C++ 桌面开发)**,请从微软官网安装 “Build Tools for Visual Studio” 并勾选 “使用 C++ 的桌面开发”。
Q9:窗口一闪就关了 / 想看运行日志
每次运行的完整日志都保存在 `D:\project-init\install-log.txt`(没有 D 盘则在 `C:\project-init\`)。
Q10:我只想装其中几个软件
在主菜单按 `2` 自己勾选;或者看下面的 [进阶用法](#-进阶用法),用 `-Packages` 参数指定。
---
## 🛡️ 关于本脚本:会改动电脑的哪些地方
在菜单里按 `4`(或运行时加 `-About` 参数)也能看到这些说明。
| 改动 | 位置 |
|---|---|
| 下载的安装包(可随时删除) | `D:\project-init\downloads` |
| 绿色版软件(Node.js / Go / JDK) | `D:\tools\` |
| Git、7-Zip | `C:\Program Files\` |
| VS Code、MarkText、Miniconda、Rust | 当前用户目录 |
| 环境变量 | 用户 `PATH`、`JAVA_HOME` 等 |
| 各工具下载源配置 | npm / pip / conda / go / cargo 的配置文件 |
| 桌面图标 | 当前用户桌面;Git Bash、7-Zip 在管理员模式下放公共桌面 |
> 没有 D 盘的电脑会自动改用 C 盘。脚本 **不会删除你的个人文件**,也不会改动与上面无关的系统设置。
**🔒 安全吗?**
- 所有软件都来自官方或知名镜像站(清华 TUNA、npmmirror、阿里云、华为云、中科大等);
- 脚本完全开源,每一行代码都可以在本仓库查看;Go 安装包会做 SHA256 完整性校验。
**🗑️ 如何卸载?**
- Git / 7-Zip / VS Code / MarkText / Miniconda:**设置 → 应用** 中卸载;
- Node.js / Go / JDK:直接删除 `D:\tools` 下对应文件夹;
- Rust:终端运行 `rustup self uninstall`;
- 环境变量:搜索 “编辑系统环境变量” → 环境变量 → 删除 Path 中对应条目。
---
## 🧰 进阶用法
带参数运行时,需要用下面这种写法(把参数加在最后):
```powershell
& ([scriptblock]::Create((irm https://gitee.com/Xynrin/project-init/raw/master/install.ps1))) <参数>
```
| 参数 | 作用 | 示例 |
|---|---|---|
| *(不加参数)* | 显示主菜单,15 秒无操作自动安装推荐组件 | |
| `-i` | 直接进入勾选菜单 | `-i` |
| `-Yes` | 不显示菜单,直接安装推荐组件(机房批量部署) | `-Yes` |
| `-Packages` | 只安装指定软件 | `-Packages git,node,vscode` |
| `-Category` | 按分类安装 | `-Category DevTools,Runtime` |
| `-Exclude` | 安装推荐组件,但排除某些 | `-Exclude rust,miniconda` |
| `-All` | 安装清单中的全部软件 | `-All` |
| `-Force` | 已安装的也重新安装 | `-Force` |
| `-DryRun` | 演练:只显示会做什么,不真正安装 | `-DryRun` |
| `-List` | 查看所有软件及安装状态 | `-List` |
| `-About` | 查看关于本脚本 / 改动说明 | `-About` |
| `-Shortcuts` | 只为已安装的软件补建桌面图标,不安装软件 | `-Shortcuts` |
| `-NoShortcut` | 安装时不创建桌面图标 | `-NoShortcut` |
| `-ToolsDir` | 自定义绿色软件安装目录 | `-ToolsDir "E:\tools"` |
| `-Config` | 使用自定义软件清单(本地路径或网址) | `-Config .\my.json` |
| `-Help` | 查看帮助 | `-Help` |
**从 CMD / `Win + R` 运行:**
```cmd
powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://gitee.com/Xynrin/project-init/raw/master/install.ps1 | iex"
```
**离线 / 本地运行:** 下载或 `git clone` 本仓库后,双击 `install.cmd`(会自动使用同目录下的 `setup.ps1` 和 `packages.json`),或执行:
```powershell
powershell -ExecutionPolicy Bypass -File .\setup.ps1
```
---
## 🛠️ 自定义软件清单
所有软件都定义在 [`packages.json`](./packages.json) 里。想增加一个新软件,只需要在 `packages` 数组里追加一段 JSON,不用改脚本代码。
示例:增加一个 Zip 绿色版软件(Neovim)
```json
{
"id": "neovim",
"name": "Neovim",
"category": "Editor",
"description": "现代化 Vim 编辑器",
"enabled": true,
"adminRequired": false,
"verify": "nvim --version",
"detect": {
"paths": ["${toolsDir}\\nvim\\bin\\nvim.exe"]
},
"source": {
"type": "direct",
"url": "https://ghproxy.net/https://github.com/neovim/neovim/releases/latest/download/nvim-win64.zip",
"fileName": "nvim-win64.zip"
},
"install": {
"type": "zip",
"targetDir": "${toolsDir}\\nvim",
"stripRoot": true
},
"env": {
"userPath": ["${toolsDir}\\nvim\\bin"]
}
}
```
字段说明
| 字段 | 说明 |
|---|---|
| `id` / `name` / `description` | 软件标识、显示名称、说明 |
| `enabled` | 是否属于“推荐组件”(主菜单 `[1]` 会安装) |
| `adminRequired` | 是否需要管理员权限 |
| `dependsOn` | 前置依赖(如 `["node"]`),缺失时会自动加入安装列表 |
| `verify` | 装完后提示用户验证的命令 |
| `shortcuts` | 桌面图标列表:`name`、`target`(可写多个候选路径)、`args`、`icon`、`scope`(`user` = 只放当前用户桌面) |
| `detect.paths` / `detect.command` | 用来判断是否已安装 |
| `source.type` | `direct`(直链,可配 `fallbackUrls` 备用源)等 |
| `install.type` | `inno` / `nsis` / `exe` / `msi` / `zip` / `npm-global` |
| `env.userPath` / `env.variables` | 要加入的 PATH 与环境变量 |
| `postInstall` | 安装后执行的配置命令 |
可用路径变量:`${drive}`、`${toolsDir}`、`${downloadsDir}`、`${userProfile}`、`${localAppData}`、`${appData}`、`${programFiles}`。
---
觉得好用的话,欢迎到 [Gitee](https://gitee.com/Xynrin/project-init) 点个 ⭐ Star!
遇到问题可以提 [Issue](https://gitee.com/Xynrin/project-init/issues),附上 `install-log.txt` 日志会更快定位。