本文目录导读:

我来详细介绍如何编写快捷命令扩展脚本,涵盖不同平台和方法。
Windows 平台
PowerShell 脚本(推荐)
创建一个自定义命令脚本:
# my-commands.ps1
# 自定义命令集
# 快速打开常用文件夹
function Open-Work {
Set-Location "D:\Projects\Work"
Write-Host "📂 已切换到工作目录" -ForegroundColor Green
}
# 快速查看系统信息
function Show-SysInfo {
Write-Host "=== 系统信息 ===" -ForegroundColor Cyan
Get-ComputerInfo | Select-Object WindowsProductName, WindowsVersion, OsArchitecture
}
# 批量重命名文件
function Rename-Files {
param(
[string]$Prefix = "file_",
[string]$Path = "."
)
Get-ChildItem $Path -File | ForEach-Object {
$newName = $Prefix + $_.Name
Rename-Item $_.FullName -NewName $newName
Write-Host "✅ 已重命名: $($_.Name) → $newName"
}
}
# 快速创建项目结构
function New-Project {
param([string]$ProjectName)
if ([string]::IsNullOrEmpty($ProjectName)) {
Write-Host "❌ 请指定项目名称: New-Project MyApp" -ForegroundColor Red
return
}
$paths = @("src", "tests", "docs", "build")
New-Item -Path $ProjectName -ItemType Directory -Force | Out-Null
foreach ($path in $paths) {
New-Item -Path "$ProjectName\$path" -ItemType Directory -Force | Out-Null
}
Write-Host "✅ 项目 $ProjectName 已创建" -ForegroundColor Green
}
注册 PowerShell 模块
# 保存到模块目录
# $env:USERPROFILE\Documents\PowerShell\Modules\MyCommands\MyCommands.psm1
# 加载模块
Import-Module MyCommands
# 自动加载(添加到 PowerShell profile)
if (Test-Path "$env:USERPROFILE\Documents\PowerShell\Microsoft.PowerShell_profile.ps1") {
Add-Content $PROFILE "`nImport-Module MyCommands"
} else {
New-Item -Path $PROFILE -ItemType File -Force
Add-Content $PROFILE "Import-Module MyCommands"
}
CMD 批处理脚本
@echo off :: quick-commands.bat :menu cls echo ======================================== echo 快捷命令集 echo ======================================== echo 1. 打开工作目录 echo 2. 启动开发环境 echo 3. 清理临时文件 echo 4. 备份项目 echo 5. 显示网络信息 echo 6. 退出 echo ======================================== set /p choice=请选择操作: if "%choice%"=="1" goto open_work if "%choice%"=="2" goto start_dev if "%choice%"=="3" goto clean_temp if "%choice%"=="4" goto backup if "%choice%"=="5" goto network if "%choice%"=="6" goto end :open_work cd /d D:\Projects\Work echo 已切换到工作目录 pause goto menu :start_dev start cmd /k "code ." start cmd /k "npm run dev" echo 开发环境已启动 pause goto menu :clean_temp del /q /s %TEMP%\* echo 临时文件已清理 pause goto menu :end echo 再见!
Linux/macOS 平台
Bash 脚本
#!/bin/bash
# ~/.bashrc 或 ~/.bash_profile 中添加
# 常用目录快捷方式
alias work='cd ~/Projects/Work'
alias docs='cd ~/Documents'
alias dev='cd ~/Projects/dev'
# Git 快捷命令
alias gs='git status'
alias ga='git add .'
alias gc='git commit -m'
alias gp='git push'
alias gl='git log --oneline --graph'
# 系统快捷命令
alias update='sudo apt update && sudo apt upgrade'
alias clean='sudo apt autoremove && sudo apt autoclean'
alias myip='curl ifconfig.me'
# 函数:创建并进入新目录
mkcd() {
mkdir -p "$1" && cd "$1"
}
# 函数:快速查找文件
ff() {
find . -name "$1" -type f 2>/dev/null
}
# 函数:压缩备份
backup() {
if [ -z "$1" ]; then
echo "用法: backup <目录名>"
return 1
fi
tar -czf "$1_$(date +%Y%m%d).tar.gz" "$1"
echo "已备份 $1"
}
创建独立命令脚本
#!/bin/bash # /usr/local/bin/sysinfo # 系统信息快速查看工具 echo "系统信息:" uname -a echo "" echo "CPU:" lscpu | grep "Model name" echo "" echo "内存使用:" free -h echo "" echo "磁盘使用:" df -h | grep -v tmpfs
添加执行权限和使用
# 添加执行权限 chmod +x /usr/local/bin/sysinfo # 直接使用 sysinfo
跨平台工具
Python 脚本(跨平台)
#!/usr/bin/env python3
# quick_commands.py
# 跨平台快捷命令工具
import os
import sys
import platform
import subprocess
class QuickCommands:
def __init__(self):
self.system = platform.system()
def open_editor(self, path="."):
"""打开代码编辑器"""
if self.system == "Windows":
os.system(f"code {path}")
else:
os.system(f"code {path}")
def create_project(self, name):
"""创建新项目"""
os.makedirs(name, exist_ok=True)
for folder in ["src", "tests", "docs"]:
os.makedirs(f"{name}/{folder}", exist_ok=True)
print(f"✅ 项目 {name} 已创建")
def clear_cache(self):
"""清理缓存"""
if self.system == "Windows":
os.system("cleanmgr /sagerun:1")
else:
os.system("sudo apt clean && sudo apt autoremove")
print("缓存已清理")
def show_menu(self):
"""显示菜单"""
while True:
print("\n=== 快捷命令工具 ===")
print("1. 打开编辑器")
print("2. 创建项目")
print("3. 清理缓存")
print("4. 退出")
choice = input("请选择: ")
if choice == "1":
path = input("输入路径(默认当前目录): ")
self.open_editor(path or ".")
elif choice == "2":
name = input("输入项目名称: ")
self.create_project(name)
elif choice == "3":
self.clear_cache()
elif choice == "4":
break
else:
print("无效选择")
if __name__ == "__main__":
app = QuickCommands()
app.show_menu()
配置管理
统一的命令配置文件
# commands.yaml
# 集中管理快捷命令
commands:
# 项目相关
- name: init_project
description: 初始化项目结构
windows: "python scripts/init_project.py"
linux: "./scripts/init_project.sh"
macos: "./scripts/init_project.sh"
# 部署相关
- name: deploy
description: 部署到服务器
windows: "powershell deploy.ps1"
linux: "./deploy.sh"
macos: "./deploy.sh"
# 测试相关
- name: run_tests
description: 运行所有测试
windows: "python -m pytest"
linux: "python3 -m pytest"
macos: "python3 -m pytest"
Python 配置加载器
# command_loader.py
import yaml
import platform
import subprocess
class CommandLoader:
def __init__(self, config_file="commands.yaml"):
with open(config_file, 'r') as f:
self.config = yaml.safe_load(f)
self.system = platform.system().lower()
def get_command(self, name):
"""获取对应平台的命令"""
for cmd in self.config['commands']:
if cmd['name'] == name:
key = self.system if self.system in cmd else 'windows'
return cmd[key]
return None
def execute(self, name):
"""执行命令"""
cmd = self.get_command(name)
if cmd:
print(f"执行: {cmd}")
subprocess.run(cmd, shell=True)
else:
print(f"命令 {name} 不存在")
最佳实践建议
组织脚本结构
scripts/
├── commands/
│ ├── common/ # 通用命令
│ │ ├── git.ps1
│ │ ├── file.ps1
│ │ └── system.ps1
│ ├── project/ # 项目相关
│ │ └── init.ps1
│ └── deploy/ # 部署相关
│ └── deploy.ps1
├── config/
│ └── settings.json
└── main.ps1 # 主入口
版本管理
# 初始化 git 仓库记录脚本 cd ~/my-commands git init git add . git commit -m "初始化快捷命令集" # 创建分支管理不同环境 git checkout -b dev-env git checkout -b prod-env
文档化
# 快捷命令使用文档 ## 安装 ```powershell # Windows Invoke-Expression (Get-Content ~/my-commands/init.ps1 -Raw)
常用命令
| 命令 | 功能 | 示例 |
|---|---|---|
work |
切换到工作目录 | work |
new-project |
创建新项目 | new-project MyApp |
deploy |
部署项目 | deploy production |
扩展方法
- 在 commands/ 目录下添加新脚本
- 更新 main.ps1 导入
- 添加到文档
高级特性
命令自动补全
# bash 自动补全示例
_complete_mycommands() {
local cur="${COMP_WORDS[COMP_CWORD]}"
COMPREPLY=( $(compgen -W "work docs dev deploy build" -- "$cur") )
}
complete -F _complete_mycommands mycmd
错误处理
#!/bin/bash
# 带错误处理的命令脚本
set -e # 出错立即退出
# 定义错误处理函数
error_handler() {
echo "❌ 错误发生在第 $1 行"
echo "命令: $2"
echo "退出码: $?"
exit 1
}
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
# 命令主体
echo "开始执行..."
mkdir -p "$HOME/backup" || error_handler $LINENO "创建目录"
这些方法可以根据你的需求组合使用,创建高效、易维护的快捷命令系统,记得定期备份和版本管理你的脚本文件。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播