# xcmd
**Repository Path**: binave/xcmd
## Basic Information
- **Project Name**: xcmd
- **Description**: command-line wrapper for batch and shell
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: develop
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2020-09-09
- **Last Updated**: 2026-01-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: Wake-On-Lan, WOL, kms-client, office-installer
## README
# eXternal Command
**eXternal Command - 批处理和 Shell 的命令行封装工具**
[](LICENSE)
[](https://github.com/binave/xcmd)
常用的批处理和 Shell 方法合集。
---
## 📖 目录
- [特性](#-特性)
- [安装](#-安装)
- [使用示例](#-使用示例)
- [功能详情](#-功能详情)
- [开源协议](#-开源协议)
---
## ✨ 特性
- **xlib/xlib.cmd** - 仅使用第一方工具,开箱即用,包含数十个实用命令
- **x3rd/x3rd.cmd** - 对第三方命令行工具进行封装
- 支持 Windows、macOS 和 Linux 平台
- 内置错误处理和帮助系统
- 支持 UNC 路径(Windows SMB)
- 易于部署
- **xjar** - JAR 应用程序进程管理与运维工具,(linux 专用)
- **qrsender.sh/qrsender.cmd** - 通过`二维码`将文件从 Linux 传输到 Windows
---
## 📦 安装
### Windows 系统
1. 下载 `xlib.cmd` 和/或 `x3rd.cmd`
2. 将脚本目录添加到 PATH 环境变量
3. 确保脚本使用 `CRLF` 换行符
4. 避免在脚本中使用非 ANSI 字符
### macOS/Linux 系统
1. 下载 `xlib` 和/或 `x3rd`
2. 添加执行权限:`chmod +x xlib`
3. 将脚本目录添加到 PATH
4. 确保脚本使用 `LF` 换行符
### 快速测试
```bash
# 显示帮助
xlib -h
xlib --help
# 显示命令帮助
xlib <命令> -h
xlib <命令> --help
# 显示版本
xlib version
```
---
- 使用 `-h` 或 `--help` 获取命令使用帮助
- 在命令后使用 `-h` 或 `--help` 获取该命令的详细帮助
---
## 💡 使用示例
### 局域网唤醒(Wake on LAN)
唤醒同一网段的电脑:
```bash
# aa:bb:cc:dd:ee:ff 为目标网卡的 MAC 地址
xlib wol aa:bb:cc:dd:ee:ff
```
### 支持 cmd.exe 环境变量配置文件(Windows)
在运行 `cmd.exe` 之前加载文件 `%USERPROFILE%\.batchrc`。
类似于 Linux/Mac 中的 `~/.bashrc`
```batch
xlib var --install-config
:: or
xlib var -ic
```
### BitLocker 加密(Windows)
在不支持 TPM 的计算机上快速加密所有磁盘:
```batch
:: 准备一个 FAT32 格式的 USB 设备,用于存放开机密钥
xlib vol --encrypts-all
:: 从 UNC 路径(SMB 服务器)执行
\\192.168.1.1\xcmd\xlib vol --encrypts-all
:: 隐藏加密标识和 BitLocker 菜单
xlib vol --hide-bitlocker
:: 查看更多详情
xlib vol --help
```
### 截获 AppStore PKG 安装包(macOS)
截获 AppStore 原版 PKG 安装包:
```bash
xlib pkg -g 5
```
然后打开 AppStore 下载应用。PKG 文件将出现在下载文件夹中。
### 网络主机发现
批量搜索同一网络中 IP 不固定的计算机,并用固定名称访问:
1. 在 `%USERPROFILE%` 或 `$HOME` 下创建 `.host.ini` 文件:
```ini
[hosts]
; 单个 MAC 地址,匹配不到会忽略
gl.inet=00:11:00:00:00:00
; 从左开始匹配,都匹配不到会设置为最后的 |127.0.0.1
syno-15=00-11-00-00-11-00|11:00:00:00:00:11|00-11-00-00-00-11|127.0.0.1
; 直接设置为固定的 IPv4
binave.com=127.0.0.1
[sip_setting]
; 搜寻的 IPv4 范围
range=1-120
```
2. 执行命令(需要管理员权限):
```bash
xlib hosts
```
### Microsoft Office 部署(Windows)
自动化安装 Microsoft Office
```batch
:: 帮助信息
xlib odt -h
:: 先下载最新的 Office 安装文件
xlib odt -d D:\ 2021
xlib odt -d \\192.168.1.1\xcmd 2024
:: 自动安装指定组件
\\192.168.1.1\xcmd\xlib odt -i word excel powerpoint 2024
```
### KMS 激活(Windows)
使用 KMS 服务自动激活 Windows 和 Office:
```batch
:: 使用 KMS 服务激活 Windows
xlib kms -s 192.168.1.1
:: 使用 KMS 服务激活 Office
xlib kms -o 192.168.1.1
:: 使用 KMS 服务激活 Windows 和 Office
\\192.168.1.1\xcmd\xlib kms -a
```
### 剪贴板文件传输(Windows)
通过远程桌面剪贴板传输小文件或文件夹(适用于旧版本 Windows):
1. 在本地和远程机器上下载 `clipTransfer.vbs`
2. 在一端将文件/文件夹拖放到 VBS 脚本上
3. 等待完成
4. 在另一端双击 VBS 脚本即可接收
---
## 🔧 功能详情
### xlib.cmd (Windows)
- 支持在 `for /f` 命令中使用(进行判断操作时需要使用 `call` 命令)
- 函数名自动补全(从左到右逐字符匹配)
- 简单的多进程控制支持(如 `hosts` 函数)
- 虚拟磁盘控制、WIM 文件操作、字符串操作、哈希计算
- 通过 `xlib vbs` 命令调用 VBS 脚本进行下载和转码等操作
### xlib / bash.xlib (macOS/Linux)
- Shell 实现的复杂数据结构(字典、队列等)
- 区分 macOS 和 Linux 版本的函数
### xjar (Linux)
- 进程管理:start/stop/restart JAR 应用
- 日志管理:查看、重定向、自动轮转、清理日志
- 状态监控:显示进程信息、CPU/内存占用、网络连接、线程详情
- 批量操作:支持多目录批量管理
- 调试支持:支持 JDWP 远程调试
### qrsender (Linux -> Windows)
- 特性:在无法使用 USB、网络或蓝牙的隔离环境中传输文件
- 原理:发送端在终端上以动画形式逐个显示 QR 码序列(带进度编号),接收端自动扫描 QR 码序列后还原原始文件,并计算丢包。发送端根据编号进行重传。
---
## 📄 开源协议
本项目采用 Apache License 2.0 开源协议。详见 [LICENSE](LICENSE) 文件。