@zzp123/mcp-zentao 1.18.9 → 1.18.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1018 -1018
- package/LICENSE +20 -20
- package/dist/api/zentaoApi.js +19 -18
- package/dist/index-dev.js +43 -36
- package/dist/index-pm.js +76 -637
- package/dist/index-qa.js +29 -34
- package/dist/index.js +61 -41
- package/dist/roleConfig.d.ts +0 -4
- package/dist/roleConfig.js +28 -33
- package/dist/types/zentao.d.ts +1 -0
- package/json-args.js +26 -26
- package/package.json +75 -75
- package/scripts/MCP-INTEGRATION.md +298 -298
- package/scripts/README.md +315 -315
- package/scripts/generate-role-versions.cjs +216 -209
- package/scripts/get-clipboard-base64.js +93 -93
- package/scripts/get_clipboard.ps1 +13 -13
- package/scripts/upload-clipboard-image.js +200 -200
- package/scripts/upload-clipboard-image.ps1 +128 -128
- package/scripts/upload-clipboard-image.py +196 -196
- package/scripts/upload.bat.example +41 -41
|
@@ -1,196 +1,196 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
"""
|
|
3
|
-
从剪贴板获取图片并上传到禅道
|
|
4
|
-
|
|
5
|
-
依赖安装:
|
|
6
|
-
pip install pillow requests
|
|
7
|
-
|
|
8
|
-
使用方法:
|
|
9
|
-
python upload-clipboard-image.py
|
|
10
|
-
|
|
11
|
-
环境变量:
|
|
12
|
-
ZENTAO_URL: 禅道系统URL
|
|
13
|
-
ZENTAO_USERNAME: 用户名
|
|
14
|
-
ZENTAO_PASSWORD: 密码
|
|
15
|
-
ZENTAO_UID: 可选的UID参数
|
|
16
|
-
"""
|
|
17
|
-
|
|
18
|
-
import os
|
|
19
|
-
import sys
|
|
20
|
-
import hashlib
|
|
21
|
-
import requests
|
|
22
|
-
import base64
|
|
23
|
-
from io import BytesIO
|
|
24
|
-
from pathlib import Path
|
|
25
|
-
from datetime import datetime
|
|
26
|
-
|
|
27
|
-
try:
|
|
28
|
-
from PIL import ImageGrab, Image
|
|
29
|
-
except ImportError:
|
|
30
|
-
print("错误: 请先安装 Pillow 库")
|
|
31
|
-
print("运行: pip install pillow")
|
|
32
|
-
sys.exit(1)
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
def get_clipboard_image():
|
|
36
|
-
"""从剪贴板获取图片"""
|
|
37
|
-
print("正在读取剪贴板图片...")
|
|
38
|
-
|
|
39
|
-
try:
|
|
40
|
-
# 尝试获取剪贴板图片
|
|
41
|
-
img = ImageGrab.grabclipboard()
|
|
42
|
-
|
|
43
|
-
if img is None:
|
|
44
|
-
print("错误: 剪贴板中没有图片")
|
|
45
|
-
sys.exit(1)
|
|
46
|
-
|
|
47
|
-
# 如果是文件路径列表,读取第一个图片文件
|
|
48
|
-
if isinstance(img, list):
|
|
49
|
-
img_path = img[0]
|
|
50
|
-
if os.path.isfile(img_path):
|
|
51
|
-
img = Image.open(img_path)
|
|
52
|
-
else:
|
|
53
|
-
print(f"错误: 无法打开文件 {img_path}")
|
|
54
|
-
sys.exit(1)
|
|
55
|
-
|
|
56
|
-
print(f"✓ 成功读取剪贴板图片 ({img.width}x{img.height})")
|
|
57
|
-
return img
|
|
58
|
-
|
|
59
|
-
except Exception as e:
|
|
60
|
-
print(f"错误: 无法读取剪贴板图片 - {e}")
|
|
61
|
-
sys.exit(1)
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
def image_to_base64(img):
|
|
65
|
-
"""将图片转换为 base64"""
|
|
66
|
-
buffer = BytesIO()
|
|
67
|
-
img.save(buffer, format='PNG')
|
|
68
|
-
img_bytes = buffer.getvalue()
|
|
69
|
-
return base64.b64encode(img_bytes).decode('utf-8'), img_bytes
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
def get_zentao_token(url, username, password):
|
|
73
|
-
"""获取禅道 Token"""
|
|
74
|
-
print("正在连接禅道系统...")
|
|
75
|
-
|
|
76
|
-
# MD5 加密密码
|
|
77
|
-
password_md5 = hashlib.md5(password.encode()).hexdigest()
|
|
78
|
-
|
|
79
|
-
token_url = f"{url}/zentao/api.php/v1/tokens"
|
|
80
|
-
data = {
|
|
81
|
-
"account": username,
|
|
82
|
-
"password": password_md5
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
try:
|
|
86
|
-
response = requests.post(token_url, json=data)
|
|
87
|
-
response.raise_for_status()
|
|
88
|
-
token = response.json().get('token')
|
|
89
|
-
|
|
90
|
-
if not token:
|
|
91
|
-
print("错误: 无法获取 Token")
|
|
92
|
-
sys.exit(1)
|
|
93
|
-
|
|
94
|
-
print("✓ 成功获取 Token")
|
|
95
|
-
return token
|
|
96
|
-
|
|
97
|
-
except requests.exceptions.RequestException as e:
|
|
98
|
-
print(f"错误: 无法连接禅道系统 - {e}")
|
|
99
|
-
sys.exit(1)
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
def upload_to_zentao(url, token, img_bytes, filename, uid=None):
|
|
103
|
-
"""上传图片到禅道"""
|
|
104
|
-
print("正在上传到禅道...")
|
|
105
|
-
|
|
106
|
-
upload_url = f"{url}/zentao/api.php/v1/files"
|
|
107
|
-
if uid:
|
|
108
|
-
upload_url += f"?uid={uid}"
|
|
109
|
-
|
|
110
|
-
headers = {
|
|
111
|
-
"Token": token
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
files = {
|
|
115
|
-
'imgFile': (filename, img_bytes, 'image/png')
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
try:
|
|
119
|
-
response = requests.post(upload_url, headers=headers, files=files)
|
|
120
|
-
response.raise_for_status()
|
|
121
|
-
result = response.json()
|
|
122
|
-
|
|
123
|
-
print("")
|
|
124
|
-
print("=" * 40)
|
|
125
|
-
print("✓ 上传成功!")
|
|
126
|
-
print("=" * 40)
|
|
127
|
-
print(f"文件ID: {result.get('id')}")
|
|
128
|
-
print(f"访问URL: {result.get('url')}")
|
|
129
|
-
print("=" * 40)
|
|
130
|
-
|
|
131
|
-
return result
|
|
132
|
-
|
|
133
|
-
except requests.exceptions.RequestException as e:
|
|
134
|
-
print("")
|
|
135
|
-
print("=" * 40)
|
|
136
|
-
print("✗ 上传失败")
|
|
137
|
-
print("=" * 40)
|
|
138
|
-
print(f"错误信息: {e}")
|
|
139
|
-
print("=" * 40)
|
|
140
|
-
sys.exit(1)
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
def main():
|
|
144
|
-
# 检查环境变量
|
|
145
|
-
zentao_url = os.environ.get('ZENTAO_URL')
|
|
146
|
-
username = os.environ.get('ZENTAO_USERNAME')
|
|
147
|
-
password = os.environ.get('ZENTAO_PASSWORD')
|
|
148
|
-
uid = os.environ.get('ZENTAO_UID')
|
|
149
|
-
|
|
150
|
-
if not all([zentao_url, username, password]):
|
|
151
|
-
print("错误: 请设置环境变量 ZENTAO_URL, ZENTAO_USERNAME, ZENTAO_PASSWORD")
|
|
152
|
-
print("")
|
|
153
|
-
print("Windows示例:")
|
|
154
|
-
print(" set ZENTAO_URL=https://your-zentao-url")
|
|
155
|
-
print(" set ZENTAO_USERNAME=your-username")
|
|
156
|
-
print(" set ZENTAO_PASSWORD=your-password")
|
|
157
|
-
print(" python upload-clipboard-image.py")
|
|
158
|
-
print("")
|
|
159
|
-
print("Mac/Linux示例:")
|
|
160
|
-
print(" export ZENTAO_URL=https://your-zentao-url")
|
|
161
|
-
print(" export ZENTAO_USERNAME=your-username")
|
|
162
|
-
print(" export ZENTAO_PASSWORD=your-password")
|
|
163
|
-
print(" python upload-clipboard-image.py")
|
|
164
|
-
sys.exit(1)
|
|
165
|
-
|
|
166
|
-
# 获取剪贴板图片
|
|
167
|
-
img = get_clipboard_image()
|
|
168
|
-
|
|
169
|
-
# 转换为 base64
|
|
170
|
-
base64_str, img_bytes = image_to_base64(img)
|
|
171
|
-
print("✓ 图片已转换为 base64")
|
|
172
|
-
|
|
173
|
-
# 创建 img 文件夹
|
|
174
|
-
img_dir = Path.cwd() / 'img'
|
|
175
|
-
img_dir.mkdir(exist_ok=True)
|
|
176
|
-
|
|
177
|
-
# 保存到本地
|
|
178
|
-
timestamp = int(datetime.now().timestamp() * 1000)
|
|
179
|
-
filename = f"clipboard_{timestamp}.png"
|
|
180
|
-
local_path = img_dir / filename
|
|
181
|
-
|
|
182
|
-
with open(local_path, 'wb') as f:
|
|
183
|
-
f.write(img_bytes)
|
|
184
|
-
|
|
185
|
-
print(f"✓ 图片已保存到: {local_path}")
|
|
186
|
-
|
|
187
|
-
# 获取 Token
|
|
188
|
-
token = get_zentao_token(zentao_url, username, password)
|
|
189
|
-
|
|
190
|
-
# 上传到禅道
|
|
191
|
-
result = upload_to_zentao(zentao_url, token, img_bytes, filename, uid)
|
|
192
|
-
print(f"本地路径: {local_path}")
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
if __name__ == '__main__':
|
|
196
|
-
main()
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
从剪贴板获取图片并上传到禅道
|
|
4
|
+
|
|
5
|
+
依赖安装:
|
|
6
|
+
pip install pillow requests
|
|
7
|
+
|
|
8
|
+
使用方法:
|
|
9
|
+
python upload-clipboard-image.py
|
|
10
|
+
|
|
11
|
+
环境变量:
|
|
12
|
+
ZENTAO_URL: 禅道系统URL
|
|
13
|
+
ZENTAO_USERNAME: 用户名
|
|
14
|
+
ZENTAO_PASSWORD: 密码
|
|
15
|
+
ZENTAO_UID: 可选的UID参数
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
import os
|
|
19
|
+
import sys
|
|
20
|
+
import hashlib
|
|
21
|
+
import requests
|
|
22
|
+
import base64
|
|
23
|
+
from io import BytesIO
|
|
24
|
+
from pathlib import Path
|
|
25
|
+
from datetime import datetime
|
|
26
|
+
|
|
27
|
+
try:
|
|
28
|
+
from PIL import ImageGrab, Image
|
|
29
|
+
except ImportError:
|
|
30
|
+
print("错误: 请先安装 Pillow 库")
|
|
31
|
+
print("运行: pip install pillow")
|
|
32
|
+
sys.exit(1)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def get_clipboard_image():
|
|
36
|
+
"""从剪贴板获取图片"""
|
|
37
|
+
print("正在读取剪贴板图片...")
|
|
38
|
+
|
|
39
|
+
try:
|
|
40
|
+
# 尝试获取剪贴板图片
|
|
41
|
+
img = ImageGrab.grabclipboard()
|
|
42
|
+
|
|
43
|
+
if img is None:
|
|
44
|
+
print("错误: 剪贴板中没有图片")
|
|
45
|
+
sys.exit(1)
|
|
46
|
+
|
|
47
|
+
# 如果是文件路径列表,读取第一个图片文件
|
|
48
|
+
if isinstance(img, list):
|
|
49
|
+
img_path = img[0]
|
|
50
|
+
if os.path.isfile(img_path):
|
|
51
|
+
img = Image.open(img_path)
|
|
52
|
+
else:
|
|
53
|
+
print(f"错误: 无法打开文件 {img_path}")
|
|
54
|
+
sys.exit(1)
|
|
55
|
+
|
|
56
|
+
print(f"✓ 成功读取剪贴板图片 ({img.width}x{img.height})")
|
|
57
|
+
return img
|
|
58
|
+
|
|
59
|
+
except Exception as e:
|
|
60
|
+
print(f"错误: 无法读取剪贴板图片 - {e}")
|
|
61
|
+
sys.exit(1)
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def image_to_base64(img):
|
|
65
|
+
"""将图片转换为 base64"""
|
|
66
|
+
buffer = BytesIO()
|
|
67
|
+
img.save(buffer, format='PNG')
|
|
68
|
+
img_bytes = buffer.getvalue()
|
|
69
|
+
return base64.b64encode(img_bytes).decode('utf-8'), img_bytes
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
def get_zentao_token(url, username, password):
|
|
73
|
+
"""获取禅道 Token"""
|
|
74
|
+
print("正在连接禅道系统...")
|
|
75
|
+
|
|
76
|
+
# MD5 加密密码
|
|
77
|
+
password_md5 = hashlib.md5(password.encode()).hexdigest()
|
|
78
|
+
|
|
79
|
+
token_url = f"{url}/zentao/api.php/v1/tokens"
|
|
80
|
+
data = {
|
|
81
|
+
"account": username,
|
|
82
|
+
"password": password_md5
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
try:
|
|
86
|
+
response = requests.post(token_url, json=data)
|
|
87
|
+
response.raise_for_status()
|
|
88
|
+
token = response.json().get('token')
|
|
89
|
+
|
|
90
|
+
if not token:
|
|
91
|
+
print("错误: 无法获取 Token")
|
|
92
|
+
sys.exit(1)
|
|
93
|
+
|
|
94
|
+
print("✓ 成功获取 Token")
|
|
95
|
+
return token
|
|
96
|
+
|
|
97
|
+
except requests.exceptions.RequestException as e:
|
|
98
|
+
print(f"错误: 无法连接禅道系统 - {e}")
|
|
99
|
+
sys.exit(1)
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def upload_to_zentao(url, token, img_bytes, filename, uid=None):
|
|
103
|
+
"""上传图片到禅道"""
|
|
104
|
+
print("正在上传到禅道...")
|
|
105
|
+
|
|
106
|
+
upload_url = f"{url}/zentao/api.php/v1/files"
|
|
107
|
+
if uid:
|
|
108
|
+
upload_url += f"?uid={uid}"
|
|
109
|
+
|
|
110
|
+
headers = {
|
|
111
|
+
"Token": token
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
files = {
|
|
115
|
+
'imgFile': (filename, img_bytes, 'image/png')
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
try:
|
|
119
|
+
response = requests.post(upload_url, headers=headers, files=files)
|
|
120
|
+
response.raise_for_status()
|
|
121
|
+
result = response.json()
|
|
122
|
+
|
|
123
|
+
print("")
|
|
124
|
+
print("=" * 40)
|
|
125
|
+
print("✓ 上传成功!")
|
|
126
|
+
print("=" * 40)
|
|
127
|
+
print(f"文件ID: {result.get('id')}")
|
|
128
|
+
print(f"访问URL: {result.get('url')}")
|
|
129
|
+
print("=" * 40)
|
|
130
|
+
|
|
131
|
+
return result
|
|
132
|
+
|
|
133
|
+
except requests.exceptions.RequestException as e:
|
|
134
|
+
print("")
|
|
135
|
+
print("=" * 40)
|
|
136
|
+
print("✗ 上传失败")
|
|
137
|
+
print("=" * 40)
|
|
138
|
+
print(f"错误信息: {e}")
|
|
139
|
+
print("=" * 40)
|
|
140
|
+
sys.exit(1)
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
def main():
|
|
144
|
+
# 检查环境变量
|
|
145
|
+
zentao_url = os.environ.get('ZENTAO_URL')
|
|
146
|
+
username = os.environ.get('ZENTAO_USERNAME')
|
|
147
|
+
password = os.environ.get('ZENTAO_PASSWORD')
|
|
148
|
+
uid = os.environ.get('ZENTAO_UID')
|
|
149
|
+
|
|
150
|
+
if not all([zentao_url, username, password]):
|
|
151
|
+
print("错误: 请设置环境变量 ZENTAO_URL, ZENTAO_USERNAME, ZENTAO_PASSWORD")
|
|
152
|
+
print("")
|
|
153
|
+
print("Windows示例:")
|
|
154
|
+
print(" set ZENTAO_URL=https://your-zentao-url")
|
|
155
|
+
print(" set ZENTAO_USERNAME=your-username")
|
|
156
|
+
print(" set ZENTAO_PASSWORD=your-password")
|
|
157
|
+
print(" python upload-clipboard-image.py")
|
|
158
|
+
print("")
|
|
159
|
+
print("Mac/Linux示例:")
|
|
160
|
+
print(" export ZENTAO_URL=https://your-zentao-url")
|
|
161
|
+
print(" export ZENTAO_USERNAME=your-username")
|
|
162
|
+
print(" export ZENTAO_PASSWORD=your-password")
|
|
163
|
+
print(" python upload-clipboard-image.py")
|
|
164
|
+
sys.exit(1)
|
|
165
|
+
|
|
166
|
+
# 获取剪贴板图片
|
|
167
|
+
img = get_clipboard_image()
|
|
168
|
+
|
|
169
|
+
# 转换为 base64
|
|
170
|
+
base64_str, img_bytes = image_to_base64(img)
|
|
171
|
+
print("✓ 图片已转换为 base64")
|
|
172
|
+
|
|
173
|
+
# 创建 img 文件夹
|
|
174
|
+
img_dir = Path.cwd() / 'img'
|
|
175
|
+
img_dir.mkdir(exist_ok=True)
|
|
176
|
+
|
|
177
|
+
# 保存到本地
|
|
178
|
+
timestamp = int(datetime.now().timestamp() * 1000)
|
|
179
|
+
filename = f"clipboard_{timestamp}.png"
|
|
180
|
+
local_path = img_dir / filename
|
|
181
|
+
|
|
182
|
+
with open(local_path, 'wb') as f:
|
|
183
|
+
f.write(img_bytes)
|
|
184
|
+
|
|
185
|
+
print(f"✓ 图片已保存到: {local_path}")
|
|
186
|
+
|
|
187
|
+
# 获取 Token
|
|
188
|
+
token = get_zentao_token(zentao_url, username, password)
|
|
189
|
+
|
|
190
|
+
# 上传到禅道
|
|
191
|
+
result = upload_to_zentao(zentao_url, token, img_bytes, filename, uid)
|
|
192
|
+
print(f"本地路径: {local_path}")
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
if __name__ == '__main__':
|
|
196
|
+
main()
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
@echo off
|
|
2
|
-
REM ========================================
|
|
3
|
-
REM 剪贴板图片上传到禅道 - 配置示例
|
|
4
|
-
REM ========================================
|
|
5
|
-
REM
|
|
6
|
-
REM 使用方法:
|
|
7
|
-
REM 1. 复制此文件为 upload.bat
|
|
8
|
-
REM 2. 修改下面的配置信息
|
|
9
|
-
REM 3. 双击运行或在命令行运行
|
|
10
|
-
REM
|
|
11
|
-
|
|
12
|
-
REM ========================================
|
|
13
|
-
REM 配置区域 - 请修改为你的禅道信息
|
|
14
|
-
REM ========================================
|
|
15
|
-
|
|
16
|
-
set ZENTAO_URL=https://your-zentao-url
|
|
17
|
-
set ZENTAO_USERNAME=your-username
|
|
18
|
-
set ZENTAO_PASSWORD=your-password
|
|
19
|
-
set ZENTAO_UID=
|
|
20
|
-
|
|
21
|
-
REM ========================================
|
|
22
|
-
REM 选择上传方式
|
|
23
|
-
REM ========================================
|
|
24
|
-
|
|
25
|
-
REM 方式1: 使用 Node.js (推荐)
|
|
26
|
-
node "%~dp0upload-clipboard-image.js"
|
|
27
|
-
|
|
28
|
-
REM 方式2: 使用 PowerShell (Windows)
|
|
29
|
-
REM powershell -ExecutionPolicy Bypass -File "%~dp0upload-clipboard-image.ps1" ^
|
|
30
|
-
REM -ZentaoUrl "%ZENTAO_URL%" ^
|
|
31
|
-
REM -Username "%ZENTAO_USERNAME%" ^
|
|
32
|
-
REM -Password "%ZENTAO_PASSWORD%" ^
|
|
33
|
-
REM -Uid "%ZENTAO_UID%"
|
|
34
|
-
|
|
35
|
-
REM 方式3: 使用 Python
|
|
36
|
-
REM python "%~dp0upload-clipboard-image.py"
|
|
37
|
-
|
|
38
|
-
REM ========================================
|
|
39
|
-
REM 按任意键退出
|
|
40
|
-
REM ========================================
|
|
41
|
-
pause
|
|
1
|
+
@echo off
|
|
2
|
+
REM ========================================
|
|
3
|
+
REM 剪贴板图片上传到禅道 - 配置示例
|
|
4
|
+
REM ========================================
|
|
5
|
+
REM
|
|
6
|
+
REM 使用方法:
|
|
7
|
+
REM 1. 复制此文件为 upload.bat
|
|
8
|
+
REM 2. 修改下面的配置信息
|
|
9
|
+
REM 3. 双击运行或在命令行运行
|
|
10
|
+
REM
|
|
11
|
+
|
|
12
|
+
REM ========================================
|
|
13
|
+
REM 配置区域 - 请修改为你的禅道信息
|
|
14
|
+
REM ========================================
|
|
15
|
+
|
|
16
|
+
set ZENTAO_URL=https://your-zentao-url
|
|
17
|
+
set ZENTAO_USERNAME=your-username
|
|
18
|
+
set ZENTAO_PASSWORD=your-password
|
|
19
|
+
set ZENTAO_UID=
|
|
20
|
+
|
|
21
|
+
REM ========================================
|
|
22
|
+
REM 选择上传方式
|
|
23
|
+
REM ========================================
|
|
24
|
+
|
|
25
|
+
REM 方式1: 使用 Node.js (推荐)
|
|
26
|
+
node "%~dp0upload-clipboard-image.js"
|
|
27
|
+
|
|
28
|
+
REM 方式2: 使用 PowerShell (Windows)
|
|
29
|
+
REM powershell -ExecutionPolicy Bypass -File "%~dp0upload-clipboard-image.ps1" ^
|
|
30
|
+
REM -ZentaoUrl "%ZENTAO_URL%" ^
|
|
31
|
+
REM -Username "%ZENTAO_USERNAME%" ^
|
|
32
|
+
REM -Password "%ZENTAO_PASSWORD%" ^
|
|
33
|
+
REM -Uid "%ZENTAO_UID%"
|
|
34
|
+
|
|
35
|
+
REM 方式3: 使用 Python
|
|
36
|
+
REM python "%~dp0upload-clipboard-image.py"
|
|
37
|
+
|
|
38
|
+
REM ========================================
|
|
39
|
+
REM 按任意键退出
|
|
40
|
+
REM ========================================
|
|
41
|
+
pause
|