# win **Repository Path**: ITcloud/win ## Basic Information - **Project Name**: win - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-30 - **Last Updated**: 2025-06-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Script Manager GUI 这是一个使用Fyne框架开发的GUI应用,用于管理和执行脚本文件。 ## 功能特性 ### 1. HTTP服务器 - 监听端口:8080 - 提供 `/run_default` 端点用于执行默认脚本 - 返回JSON格式的执行结果 ### 2. 脚本管理功能 - **上传脚本**:支持多种脚本类型(.bat, .sh, .ps1, .cmd) - **查看脚本列表**:显示所有已上传的脚本 - **设置默认脚本**:将指定脚本设置为默认执行脚本 - **执行脚本**:根据脚本类型自动选择执行方式 - **删除脚本**:删除不需要的脚本文件 ### 3. 支持的脚本类型 - **.bat/.cmd**:Windows批处理文件(使用 `cmd /c` 执行) - **.sh**:Unix/Linux/Mac Shell脚本(使用 `bash` 或 `sh` 执行) - **.ps1**:PowerShell脚本(使用 `powershell` 执行) ### 4. 默认脚本规则 - 设置某个脚本为默认时,文件名会变更为 `{name}.default.{ext}` - 取消默认时,会去掉文件名中的`.default`部分 - 只能有一个默认脚本 ### 5. 执行记录 - 所有脚本执行都会记录到`history`目录 - 每个脚本有独立的子目录存储执行记录 - 记录包含:脚本名称、执行时间、输出内容、错误信息、退出代码、执行类型、客户端IP - 文件格式:JSON,存储路径为 `history/{脚本名}/{时间戳毫秒}_{脚本名}.json` - **执行类型区分**: - 🖱️ GUI执行:界面操作执行的脚本 - 🌐 HTTP执行:远程API调用执行的脚本(记录客户端IP) - **高精度时间戳**:使用毫秒级时间戳避免同时执行时记录覆盖 ### 6. 界面优化 - **按钮美化**:所有按钮都带有图标和柔和的颜色标识 - 上传脚本:蓝色高重要性按钮 - 设为默认:绿色高重要性按钮 - 删除:中等重要性按钮(柔和色调) - 执行:中等重要性按钮(柔和色调) - 刷新/查看历史:中等重要性按钮 - **窗口尺寸**:优化为 540x700 像素,更适合日常使用 - **文件对话框**:使用系统原生文件选择器,支持脚本类型过滤 ## 目录结构 ``` win/ ├── server/ │ └── main.go # 主程序文件 ├── scripts/ # 脚本存储目录(自动创建) ├── history/ # 执行记录目录(自动创建) ├── go.mod # Go模块文件 ├── go.sum # Go依赖校验文件 └── README.md # 说明文档 ``` ## 使用方法 ### 快速编译运行 ```bash # 本地运行(Linux/Mac) go build -o script-manager ./server ./script-manager # 编译Windows版本(无控制台窗口) chmod +x quick_build.sh ./quick_build.sh ``` > 💡 **编译Windows程序**:如果需要编译成Windows可执行文件且双击运行时不显示控制台窗口,请参考详细编译指南: > - [📋 编译方法总结](编译方法总结.md) - 快速上手 > - [📖 详细编译指南](BUILD_README.md) - 完整说明和故障排除 ### GUI操作 1. 启动应用后会显示优化后的主窗口(540x700分辨率) 2. 使用"📂 上传脚本"按钮上传多种类型的脚本文件(带文件过滤器) 3. 在脚本列表中使用"✓ 设为默认"按钮设置默认脚本 4. 点击"▶ 执行"按钮执行脚本 5. 使用"🗑 删除"按钮删除不需要的脚本(带确认对话框) 6. 使用"📊 查看历史"查看执行历史记录(三列布局显示) 7. 使用"🔄 刷新"按钮刷新脚本列表 ### HTTP API 访问 `http://localhost:8080/run_default` 执行默认脚本 响应格式: ```json { "script_name": "test.default.bat", "executed_at": "2024-01-01T12:00:00.123Z", "output": "脚本执行输出内容", "error": "错误信息(如果有)", "exit_code": 0, "client_ip": "192.168.1.100", "execute_type": "HTTP" } ``` ### 测试API功能 使用提供的测试脚本: ```bash chmod +x test-api.sh ./test-api.sh ``` 该脚本会连续5次调用API,测试: - 执行记录是否正确保存(不会覆盖) - 客户端IP是否正确记录 - 执行类型是否标记为"远程调用" ## 依赖 - Go 1.24.2+ - fyne.io/fyne/v2 v2.6.1 ## 注意事项 - 支持多种脚本格式:.bat, .sh, .ps1, .cmd - 脚本执行方式根据文件类型自动选择: - Windows批处理:`cmd /c` - Shell脚本:`bash` 或 `sh` - PowerShell:`powershell -ExecutionPolicy Bypass -File` - Shell脚本会自动设置执行权限(755) - 执行记录按脚本分类保存在history目录中 - HTTP服务器默认监听8080端口 - 支持跨平台使用(Windows, macOS, Linux) apt install mingw-w64 CC=x86_64-w64-mingw32-gcc fyne package --target windows