CMD命令行高级教程精选合编---第二章 DOS循环:for命令详解

合集下载

批处理FOR命令详解-就是这里-51CTO技术博客

批处理FOR命令详解-就是这里-51CTO技术博客

批处理FOR命令详解-就是这里-51CTO技术博客批处理FOR命令详解 2009-06-03 18:16:48标签:批处理 for对所有的批处理初学者来说,for的应用是最难理解以及掌握的。

本文由浅入深,为大家专门讲解for的用法,希望大家喜欢。

首先应该明确的是,for不是一个简单的命令,它的用法比较复杂,它还可以带四个参数(/L /D /R /F),其中:/L和/F参数是最经常用到的。

当然,它本身也可以不带参数,下面我们通过具体的例子来讲解for的运用。

一、不带参数的for:将以上代码保存为批处理文件(如何保存?),然后运行,可以发现屏幕上显示1 2 3 4 5(每字一行)是不是明白了一些?它的整个运行机制我们可以这样看:for不停的从括号中拿出5个“东西”来(以空格做间隔),并将这5个“东西”依次传给临时变量%%i,同时把这个变量echo出来....从这个例子我们可以看出,for的基本用法是:for 变量 in (目标) do 干什么?变量常用%%i 来表示,当然也可以换成%%j;目标就是待处理的对象集合,比如这里的1 2 3 4 5;这里的干什么的内容为:批处理命令。

【相关习题:】将你的名字用for命令分三行显示出来二、带参数 /L 的for (这里的参数/L 可以理解为 "list" 的意思,代表一个数列)先看测试代码:复制内容到剪贴板代码:显示结果也为:1 2 3 4 5(每字一行)它的意思和上面的意思差不多,但是括号中的对象却不需要写成1 2 3 4 5 的形式了,而是:1 1 5,因为它启用了参数 /L ,就是告诉for,这个括号里的对象是个数列,怎样的数列?就是以 1 开始,步长为1 ,结束值为5的一个等差数列,再举个实例:复制内容到剪贴板代码:::显示从 10 - 20 的所有偶数:【相关习题:】显示 1~20 间能被5整除的整数三、带参数 /f 的for(这里的参数/F可以理解为“file”的意思,代码处理对象为文本串)参考教程:for 命令 /f 参数通俗讲解四、for的 /D 和/R 参数(这两个参数个人比较少用)1>/D参数(常用来查询当前目录或者指定目录的文件夹)基本用法:FOR /D %variable IN (set) DO command [command-parameters]如:查询F盘根目录下的文件夹复制内容到剪贴板代码:夹假设本批处理文件保存在:F:\test下运行以下批处理代码,将会查询 F:\test下的文件夹复制内容到剪贴板代码:/r参数基本用法:FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]检查以[drive:]path 为根的目录树中,所有符合(set)的文件或者文件夹。

CMD命令行高级教程精选合编

CMD命令行高级教程精选合编

CMD命令行高级教程精选合编目录第一章批处理基础第一节常用批处理内部命令简介1、REM 和::2、ECHO 和@3、PAUSE4、ERRORLEVEL5、TITLE6、COLOR7、mode 配置系统设备8、GOTO 和:9、FIND10、START11、assoc 和ftype12、pushd 和popd13、CALL14、shift15、IF16、setlocal 与变量延迟(ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION 启动或停用延缓环境变量扩展名。

)17、ATTRIB 显示或更改文件属性第二节常用特殊符号1、@ 命令行回显屏蔽符2、% 批处理变量引导符3、>重定向符4、>>重定向符5、<、>&、<&重定向符6、| 命令管道符7、^ 转义字符8、&组合命令9、&&组合命令10、|| 组合命令11、"" 字符串界定符12、, 逗号13、; 分号14、() 括号15、! 感叹号第二章FOR命令详解一、基本格式二、参数/d 仅为目录三、参数/R 递归(文件名)四、参数/L 迭代数值范围五、参数/F 迭代及文件解析第三章FOR命令中的变量一、~I - 删除任何引号("),扩展%I二、%~fI - 将%I 扩展到一个完全合格的路径名三、%~dI - 仅将%I 扩展到一个驱动器号四、%~pI - 仅将%I 扩展到一个路径五、%~nI - 仅将%I 扩展到一个文件名六、%~xI - 仅将%I 扩展到一个文件扩展名七、%~sI - 扩展的路径只含有短名八、%~aI - 将%I 扩展到文件的文件属性九、%~tI - 将%I 扩展到文件的日期/时间十、%~zI - 将%I 扩展到文件的大小十一、%~$PATH:I第四章批处理中的变量一、系统变量二、自定义变量第五章set命令详解一、用set命令设置自定义变量二、用set命令进行简单计算三、用set命令进行字符串处理1、字符串替换2、字符串截取第六章if命令讲解第一种用法:IF [NOT] ERRORLEVEL number command 第二种用法:IF [NOT] string1==string2 command第三种用法:IF [NOT] EXIST filename command第四种用法:IF增强的用法第七章DOS编程高级技巧一、界面设计二、if…else…条件语句三、循环语句四、子程序五、用ftp命令实现自动下载六、用7-ZIP实现命令行压缩和解压功能七、调用VBScript程序八、将批处理转化为可执行文件九、时间延迟1、利用ping命令延时2、利用for命令延时3、利用vbs延迟函数,精确度毫秒,误差1000毫秒内4、仅用批处理命令实现任意时间延迟,精确度10毫秒,误差50毫秒内十、模拟进度条十一、特殊字符的输入及应用十二、随机数(%random%)的应用技巧十三、变量嵌套与命令嵌套1、更正了所有的错别字,适当排版,增加条理性。

DOS批处理命令For循环命令详解

DOS批处理命令For循环命令详解

DOS批处理命令For循环命令详解for命令是⼀种对⼀系列对象依次循环执⾏同⼀个或多个命令的在命令⾏或批处理中运⾏的命令,结合⼀些Windows管理中的程序后,其处理功能强⼤、应⽤灵活⽅便程度令⼈刮⽬相看。

但是,其帮助信息也因此复杂往往令初学者望⽽⽣畏,这⾥根据本⼈的学习理解,把其⽤法分解简化,疏忽和错误也许在所难免。

基本格式(这⾥写的是在命令⾏⾥⽤的格式,如果是在批处理中,需要把其中%再多加个%形成%%):for /参数 %变量 in (集) do 命令(注:上⾯除中⽂的以外,其余的是按它的格式要求书写的,⼤⼩写都⾏)参数:FOR分四种参数 D L R F,并且有的参数还可附加另外的选项下⾯会分别介绍变量:(记住如果是在批处理中使⽤for命令时,变量前的%需改为%%)这个变量名是由单个字母组成且区分⼤⼩写(原帮助是这么说的,实际运⽤中⽤单个数字作为变量名试过证明也可⾏),如%B和%b代表的是不同的变量。

FOR命令会在每次循环中,把in (集)中读取到的值赋于这个变量,以便其后的命令中引⽤。

集:由系列⽂件、字符串或由命令产⽣的内容形成的集合(当然可⽤通配符 * ?,还可引⽤环境变量),FOR命令是按⼀定顺序和规律分次读取集中内容,赋值给变量,并执⾏do后的命令,进⾏循环下⼀轮,直⾄集中内容读取完毕,⽽括号是格式必须的(in到后⾯括号之间要有空格)。

命令:可以是任何合格的DOS命令或外部可被DOS调⽤的程序,且可采⽤括号把多条命令括起来,在⼀次循环中执⾏。

附注:由于⼀些⽬录或⽂件名可能会有空格,所以很多时候集⾥和命令⾥往往需要⽤英⽂引号括起来(但有时引号⾥的内容可能会被认为是字符串)表⽰是⼀整体,下⾯开始的有些例中为简捷起见,忽略⽂件名或⽬录名带空格这种情况。

现在按参数分类举例解释其⽤法:⼀、参数 /dfor /d %%变量 in (集) do 命令/d 参数是指定仅对⽬录⽽不是⽂件执⾏的for命令。

批处理命令中for循环基本用法

批处理命令中for循环基本用法

批处理命令行中for循环基本用法for循环是在办公自动化中非常实用的语句之一,本节讨论DOS语言中for循环的各种模式:如/r,/d,/l,/f等,以及各种参数:如tokens,delims,usebackq等的基本用法。

我们须要根据实际情况选择不同的模式和参数来配置for循环以达到我们的目的。

1、【for语句的常规用法】形式1:for %%i in (字符串集合/数字列表/…) do 命令语句@echo offfor %%i in (aa,bb,cc) do echo %%ipause结果为:aabbcc注:这里如果用点进行分割,字符串会作为一个整体输出如果用逗号分割,则会一次一个单次进行打印。

判断某个磁盘是否存在,如果盘符存在,则输出它:@echo offecho 存在有驱动器:for %%i in (a,b,c,d,e,f,g) if exist %%i: echo %%ipause显示当前目录下的文件名称(非文件夹,文件夹将不会被列出):@echo offfor %%i in (*.*) do echo "%%i"pause仅显示当前目录下的txt文件名称(通配符*.txt的用法):@echo offfor %%i in (*.txt) do echo "%%i"pause把txt换成其他扩展名亦可仅列出其他格式的文件名仅显示当前目录下的txt文件名称(通配符?规定字符个数):@echo offfor %%i in (??.txt) do echo "%%i"pause仅会输出当前目录下文件名为2个字符的txt文件名2、【关于for语句的/f模式(遍历文件内容模式)】①/f模式/f模式用于遍历文件中的内容:@echo offfor /f %%i in (test.txt) do echo %%ipause运行的结果,会逐行打印test.txt文件中的内容②delims参数(表示分隔符)使用delims提取每一行在特定符号之前的内容;当设置delims为逗号(,)时,只显示每一行逗号之前内容;@echo offfor /f "delims=," %%i in (test.txt) do echo %%i pause如果识别切分的符号有多个,则可以直接继续在第一个后面写,例如:"delims=.,"此时会先判定是否有英文句号,如果没有则再判断有没有英文逗号。

CMD命令行高级教程精选合编

CMD命令行高级教程精选合编
pwd
lcd d:\download #本地目录
mget * #下载tmp1目录下的所有文件
bye #退出ftp
六、用7-ZIP实现命令行压缩和解压功能
语法格式:(详细情况见7-zip帮助文件,看得头晕可以跳过,用到再学)
7z <command> [<switch>...] <base_archive_name> [<arguments>...]
echo.
echo 3.清除所有多余的自启动项目,修复系统错误
echo.
echo 4.清理系统垃圾,提高启动速度
echo.
echo Q.退出
echo.
echo.
:cho
set choice=
set /p choice= 请选择:
x: eXtract with full paths用文件的完整路径解压至当前目录或指定目录
x命令可用参数:
-ai (Include archives)
-an (Disable parsing of archive_name)
-ao (Overwrite mode)
-ax (Exclude archives)
echo 数据求和结果:%sum%
pause
:sub
rem Байду номын сангаас数1为返回变量名称
set /a %1=%1+%2
shift /2
if not "%2"=="" goto sub
goto :eof
运行结果:65
在win98系统中,不支持上面这种标号调用,须将子程序单独保存为一个批处理程序,然后调用。

For指令在cmd提示符下的高级应用2

For指令在cmd提示符下的高级应用2

For指令在cmd提示符下的高级应用2For指令在cmd提示符下的高级应用廖德伟江西萍乡高等专科学校计算机系,337055 摘要:For指令当作迭代循环使用,在很多程序语言中都是常用的一条指令,但很少有人去把它直接应用到cmd提示符下。

其实For指令是一个高效实用的网络管理工具。

本文就For指令来展开它的实用技巧,以具体实例的方式来切实解决在日常应用中遇到的问题或技术瓶颈,借此来了解For指令的强大功能。

Abstract:It is very common that use the FOR instructions as recycling in many programming languages. However, very few people apply the FOR instructionsunder CMD directly. In fact,we could use the FOR instructions as an importanttool to safeguard and manage the internet.This article is focused on expandingthe practical skills of the FOR instructions,and gives us some effective waysto solve our problems or technical bottlenecks.Furthermore,this articlewill make us understand the power of the FOR instructions.关键词:FOR;ACL;迭代;遍历;批处理;中图法分类号:TP39 文献标识码:A目前网络管理员普遍使用网上下载的工具软件来进行管理和维护,忽略了For指令的重要功能。

其实For指令在UNIX环境下使用起来非常灵活,但是初学者一般对UNIX系统接触很少。

批处理命令——for

批处理命令——for

批处理命令——for【1】for命令简介 先把for循环与for命令类⽐⼀下,这样学习理解快。

for 循环语句,⼀般格式如下:1for (表达式1;表达式2;表达式3)2 {3循环体;4 } 1. 表达式1 ⼀般为初始状态赋值表达式,给控制变量赋初值。

2. 表达式2 ⼀般为关系表达式或逻辑表达式,为循环控制条件。

3. 表达式3 ⼀般为每次执⾏循环体后向控制变量重新赋值的表达式(给控制变量增量或减量)。

4. 语句:循环体,⼀般为复合语句(即可能需要执⾏多条语句)。

举个实例:1for (int i=0; i < 100; ++i)2 {3 cout << i << endl;4 } for 命令,⼀般格式如下: 在cmd窗⼝中使⽤格式:FOR %variable IN (set) DO command [command-parameters] 在批处理脚本中使⽤格式:FOR %%variable IN (set) DO command [command-parameters] 1. 在cmd窗⼝中使⽤,变量名必须⽤单%引⽤(即:%variable);在批处理脚本中使⽤,变量名必须⽤双%引⽤(即:%%variable)。

2. for、in和do是for命令的三个关键字,缺⼀不可。

3. 关键字in之后,do之前的括号不能省略。

举个实例:新建⼀个⽂本⽂件,命名为fordemo,修改⽂件类型为bat,⽤Notepad++打开编辑内容为:1@echo off2for %%i in (1 2 3 4 5) do@echo %%i3pause>nul 执⾏结果: 嗯哼,原来for命令就这么简单?嗨,同学,不要浮躁,保持冷静,更要理智。

下⾯,且看对上例语句的分析: 从命令组成结构由左向右剖析,除过关键字,依次分别为: 1. 变量名为i,i太简单,作为变量名不具备见名知意的特点。

cmd 循环语句

cmd 循环语句

cmd 循环语句摘要:1.CMD 循环语句概述2.CMD 循环语句的基本语法3.CMD 循环语句的应用示例正文:【1.CMD 循环语句概述】在编程语言中,循环语句是一种控制流程的方式,可以重复执行一段代码,直到满足特定条件。

在CMD(命令提示符)中,循环语句是一种非常常见的控制结构,用于处理批处理文件和自动化任务。

CMD 循环语句可以帮助用户在批处理文件中实现重复执行特定操作的功能,从而简化复杂的任务流程。

【2.CMD 循环语句的基本语法】CMD 循环语句的基本语法如下:```for /f "delims=" %a in (set) do (echo %a)```其中,`for`是循环关键字,`/f`表示使用文件,`"delims="`表示分隔符为空格,`%a`是循环变量,`(set)`表示要处理的文件集,`do`表示开始执行循环体,`echo %a`是循环体内容,用于输出循环变量的值。

【3.CMD 循环语句的应用示例】下面是一个CMD 循环语句应用示例,用于输出批处理文件中所有文件的扩展名:```@echo offsetlocal enabledelayedexpansionfor /f "delims=" %a in ("dir /b /a:-d") do (echo!a:~-4!)```在这个示例中,`@echo off`表示关闭回显,`setlocal enabledelayedexpansion`表示启用延迟变量扩展,`for /f "delims=" %a in ("dir /b /a:-d")`表示使用`dir`命令列出当前目录下所有文件(不包括子目录),并将文件名传递给循环变量`%a`。

`!a:~-4!`表示对循环变量的扩展名进行处理,输出文件的扩展名。

通过这个示例,用户可以了解CMD 循环语句的基本用法和应用场景。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CMD命令行高级教程精选合编---第二章DOS循环:for命令详解第二章DOS循环:for命令详解讲FOR之前呢,咋先告诉各位新手朋友,如果你有什么命令不懂,直接在CMD下面输入:name /? 这样的格式来看系统给出的帮助文件,比如for /? 就会把FOR 命令的帮助全部显示出来!当然许多菜鸟都看不懂....所以才会有那么多批处理文章!!!!俺也照顾菜鸟,把FOR命令用我自己的方式说明下!正式开始:一、基本格式FOR %%variable IN (set) DO command [command-parameters]%%variable 指定一个单一字母表示可替换的参数。

(set) 指定一个或一组文件。

可以使用通配符。

command 指定对每个文件执行的命令。

command-parameters为特定命令指定参数或命令行开关。

参数:FOR有4个参数/d /l /r /f 他们的作用我在下面用例子解释现在开始讲每个参数的意思二、参数/dFOR /D %%variable IN (set) DO command [command-parameters]如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。

如果Set (也就是我上面写的"相关文件或命令") 包含通配符(* 和?),将对与Set 相匹配的每个目录(而不是指定目录中的文件组)执行指定的Command。

这个参数主要用于目录搜索,不会搜索文件,看这样的例子@echo offfor /d %%i in (c:\*) do echo %%ipause运行会把C盘根目录下的全部目录名字打印出来,而文件名字一个也不显示!在来一个,比如我们要把当前路径下文件夹的名字只有1-3个字母的打出来@echo offfor /d %%i in (???) do echo %%ipause这样的话如果你当前目录下有目录名字只有1-3个字母的,就会显示出来,没有就不显示了这里解释下*号和?号的作用,*号表示任意N个字符,而?号只表示任意一个字符知道作用了,给大家个思考题目!@echo offfor /d %%i in (window?) do echo %%ipause保存到C盘下执行,会显示什么呢?自己看吧! 显示:windows/D参数只能显示当前目录下的目录名字,这个大家要注意!三、参数/RFOR /R [[drive:]path] %%variable IN (set) DO command [command-parameters]检查以[drive:]path 为根的目录树,指向每个目录中的FOR 语句。

如果在/R 后没有指定目录,则使用当前目录。

如果集仅为一个单点(.)字符,则枚举该目录树。

递归上面我们知道,/D只能显示当前路径下的目录名字,那么现在这个/R也是和目录有关,他能干嘛呢?放心他比/D强大多了!他可以把当前或者你指定路径下的文件名字全部读取,注意是文件名字,有什么用看例子!请注意2点:1、set中的文件名如果含有通配符(?或*),则列举/R参数指定的目录及其下面的所用子目录中与set相符合的所有文件,无相符文件的目录则不列举。

2、相反,如果set中为具体文件名,不含通配符,则枚举该目录树(即列举该目录及其下面的所有子目录),而不管set中的指定文件是否存在。

这与前面所说的单点(.)枚举目录树是一个道理,单点代表当前目录,也可视为一个文件。

例:@echo offfor /r c:\ %%i in (*.exe) do echo %%ipause咱们把这个BAT保存到D盘随便哪里然后执行,我会就会看到,他把C 盘根目录,和每个目录的子目录下面全部的EXE文件都列出来了!!!! 例:@echo offfor /r %%i in (*.exe) do @echo %%ipause参数不一样了吧!这个命令前面没加那个C:\也就是搜索路径,这样他就会以当前目录为搜索路径,比如你这个BAT你把他放在d:\test目录下执行,那么他就会把D:\test目录和他下面的子目录的全部EXE文件列出来!!!例:@echo offfor /r c:\ %%i in (boot.ini) do echo %%ipause运行本例发现枚举了c盘所有目录,为了只列举boot.ini存在的目录,可改成下面这样:@echo offfor /r c:\ %%i in (boot.ini) do if exist %%i echo %%ipause用这条命令搜索文件真不错。

这个参数大家应该理解了吧!还是满好玩的命令!四、参数/LFOR /L %%variable IN (start,step,end) DO command[command-parameters]该集表示以增量形式从开始到结束的一个数字序列。

因此,(1,1,5) 将产生序列 1 2 3 4 5,(5,-1,1) 将产生序列(5 4 3 2 1)。

使用迭代变量设置起始值(Start#),然后逐步执行一组范围的值,直到该值超过所设置的终止值(End#)。

/L 将通过对Start# 与End# 进行比较来执行迭代变量。

如果Start# 小于End#,就会执行该命令。

如果迭代变量超过End#,则命令解释程序退出此循环。

还可以使用负的Step# 以递减数值的方式逐步执行此范围内的值。

例如,(1,1,5) 生成序列 1 2 3 4 5,而(5,-1,1) 则生成序列(5 4 3 2 1)。

语法是:看着这说明有点晕吧!咱们看例子就不晕了!@echo offfor /l %%i in (1,1,5) do @echo %%ipause保存执行看效果,他会打印从1 2 3 4 5 这样5个数字(1,1,5)这个参数也就是表示从1开始每次加1直到5终止!等会晕,就打印个数字有P用...好的满足大家,看这个例子@echo offfor /l %%i in (1,1,5) do start cmdpause执行后是不是吓了一跳,怎么多了5个CMD窗口,呵呵!如果把那个(1,1,5)改成(1,1,65535)会有什么结果,我先告诉大家,会打开65535个CMD窗口....这么多你不死机算你强!当然我们也可以把那个start cmd改成md %%i 这样就会建立指定个目录了!!!名字为1-65535看完这个被我赋予破坏性质的参数后,我们来看最后一个参数五、参数/F\迭代及文件解析使用文件解析来处理命令输出、字符串及文件内容。

使用迭代变量定义要检查的内容或字符串,并使用各种options选项进一步修改解析方式。

使用options令牌选项指定哪些令牌应该作为迭代变量传递。

请注意:在没有使用令牌选项时,/F 将只检查第一个令牌。

文件解析过程包括读取输出、字符串或文件内容,将其分成独立的文本行以及再将每行解析成零个或更多个令牌。

然后通过设置为令牌的迭代变量值,调用for 循环。

默认情况下,/F 传递每个文件每一行的第一个空白分隔符号。

跳过空行。

详细的帮助格式为:FOR /F ["options"] %%variable IN (file-set) DO command [command-parameters]FOR /F ["options"] %%variable IN ("string") DO command [command-parameters]FOR /F ["options"] %%variable IN ('command') DO command [command-parameters]带引号的字符串"options"包括一个或多个指定不同解析选项的关键字。

这些关键字为:eol=c - 指一个行注释字符的结尾(就一个)skip=n - 指在文件开始时忽略的行数。

delims=xxx - 指分隔符集。

这个替换了空格和跳格键的默认分隔符集。

tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代的for 本身。

这会导致额外变量名称的分配。

m-n格式为一个范围。

通过nth 符号指定mth。

如果符号字符串中的最后一个字符星号,那么额外的变量将在最后一个符号解析之后分配并接受行的保留文本。

经测试,该参数最多只能区分31个字段。

usebackq - 使用后引号(键盘上数字1左面的那个键`)。

未使用参数usebackq时:file-set表示文件,但不能含有空格双引号表示字符串,即"string"单引号表示执行命令,即'command'使用参数usebackq时:file-set和"file-set"都表示文件当文件路径或名称中有空格时,就可以用双引号括起来单引号表示字符串,即'string'后引号表示命令执行,即`command`以上是用for /?命令获得的帮助信息,直接复制过来的。

晕惨了!我这就举个例子帮助大家来理解这些参数!For命令例1:****************************************@echo offrem 首先建立临时文件test.txtecho ;注释行,这是临时文件,用完删除>test.txtecho 11段12段13段14段15段16段>>test.txtecho 21段,22段,23段,24段,25段,26段>>test.txtecho 31段-32段-33段-34段-35段-36段>>test.txtFOR /F "eol=; tokens=1,3* delims=,- " %%i in (test.txt) doecho %%i %%j %%kPauseDel test.txt运行显示结果:11段13段14段15段16段21段23段24段,25段,26段31段33段34段-35段-36段请按任意键继续. . .为什么会这样?我来解释:eol=; 分号开头的行为注释行tokens=1,3* 将每行第1段,第3段和剩余字段分别赋予变量%%i,%%j,%%kdelims=,- (减号后有一空格)以逗号减号和空格为分隔符,空格必须放在最后For命令例2:****************************************@echo offFOR /F "eol= delims=" %%i in (test.txt) do echo %%iPause运行将显示test.txt全部内容,包括注释行,不解释了哈。

相关文档
最新文档