BAT(批处理)文件编写详细手册_第1页
BAT(批处理)文件编写详细手册_第2页
BAT(批处理)文件编写详细手册_第3页
BAT(批处理)文件编写详细手册_第4页
BAT(批处理)文件编写详细手册_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、BAT批处理文件编写详细手册一、 批处理文件简介首先,批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令大部分时候就好象我们在DOS提示符下执行的命令行一样,你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。 其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句 (for)来循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是十分有限的,也是十分不标准的。批处理的程序语句就是一条条的 DOS命令包括内部命令和外部命令,而

2、批处理的能力主要取决于你所使用的命令。 第三,每个编写好的批处理文件都相当于一个DOS的外部命令,你可以把它所在的目录放到你的DOS搜索路径(path)中来使得它可以在任意位置运 行。一个良好的习惯是在硬盘上建立一个bat或者batch 目录例如C:/BATCH,然后将所有你编写的批处理文件放到该目录中,这样只要在path中设置上c:/batch,你就可以在任意位置运行所有你 编写的批处理程序。 简单的说,批处理的作用就是自动的连续执行多条命令。二、 批处理中常用命令:1. echo命令:表示显示此命令后的字符。字符不需要使用引号。其中,%和两个字符不能显示。2. Echo off命令:表示在

3、此语句后所有运行的命令都不显示命令行本身。即关闭echo回显功能。可以使用echo on打开。3. 命令:它是加在每个命令行的最前面,表示运行时不显示这一行的命令行只能影响当前行。4. call命令:调用另一个批处理文件如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令。5. pause命令:运行此句会暂停批处理的执行并在屏幕上显示Press any key to continue.的提示,等待用户按任意键后继续。如果不想显示以上英文提示信息,可以这样写:pause>null6. rem命令:表示此命令后的字符为解释行注释,不执

4、行,只是给自己今后参考用的相当于程序中的注释。7. :命令:与rem命令等效。例1:用edit编辑a.bat文件,输入以下内容后存盘为c:/a.bat,执行该批处理文件后可实现:将根目录中所有文件写入 a.txt中,启动UCDOS,进入WPS等功能。 批处理文件的内容为: 命令注释: echo off/不显示后续命令行及当前命令行 dir c:/*.* >a.txt/将c盘文件列表写入a.txt /调用ucdos echo 你好 /显示"你好" pause /暂停,等待按键继续 rem 准备运行wps /注释:准备运行wps cd ucdos /进入ucdos目录 w

5、ps /运行wps 三、 批处理文件的参数:批处理文件还可以像C语言的函数一样使用参数相当于DOS命令的命令行参数,这需要用到一个参数表示符"%"。%1-9表示参数,参数是指在运行批处理文件时在文件名后加的以空格或者Tab分隔的字符串。变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用%1到%9顺序表示。 例2:C:根目录下有一批处理文件名为f.bat,内容为:echo offformat %1如果执行C:/>f a:那么在执行f.bat时,%1就表示a:,这样format %1就相当于format a:,于是上面的命令运行时实际执行的是format a:

6、例3:C:根目录下一批处理文件名为t.bat,内容为:echo offtype %1type %2于是上面的命令将顺序地显示a.txt和b.txt文件的内容。%0 这个不是返回参数的值了,他有两层意思!第一层意思:返回批处理所在绝对路径例子:echo offecho %0pause保存为test.BAT放在桌面运行,会显示如下结果"C:Documents and SettingsAdministrator桌面test.bat"他把当前批处理执行的所在路经打印出来了,这就是返回批处理所在绝对路径的意思第二层意思:无限循环执行BAT例子:echo offnet user%0保存

7、为BAT执行,他就会无限循环执行net user这条命令,直到你手动停止.%*参数:返回参数,不过他是一次返回全部参数,不用分别%1,%2等一一返回。例子echo offecho %*同样保存为test.bat 放到C盘进入CMD,输入cd c:然后输入 test.bat 我是第一个参数 我是第二个参数 我是第三个参数 我是第四个参数可以看到他一次把全部参数都显示出来了四、 自定义变量:自定义变量使用set命令。如:echo offset var=value /有空格的字符串也不需要引号。echo %var%pause其中var就是自定义的变量。五、 特殊命令(一) if命令if 是条件语句,

8、用来判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式:1. if not "参数" = "字符串" 待执行的命令 /注意:为了防止参数为空的情况,一般会将参数与字符串用双引号或者其它符号,注意不能使用保留符号括起来。 如:if %1=A 或者 if %1*=A*,这里*不是通配符。是要保证等号两边的字符一致。参数如果等于(not表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。例:if "%1"="a" format a:2. if not exist 路径/文件名 待执行的命令如果有

9、指定的文件,则条件成立,运行命令,否则运行下一句。 /表示如果存在c:/config.sys文件,则显示它的内容。3. if errorlevel <数字> 待执行的命令很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),通过if errorlevel命令可以判断程序的返回值,根据不同的返回值来决定执行不同的命令(返回值必须按照从大到小的顺序排列)。如果返回值等于指定的数 字,则条件成立,运行命令,否则运行下一句。IF ERRORLEVEL 是用来测试它的上一个DOS命令的返回值的,注意只是上一个命令的返回值,而且返回值必须依照从大到小

10、次序顺序判断。如下的例子,先判断返回值为1的,再判断返回值为0的。 IF ERRORLEVEL 1 ECHO 文件拷贝失败  IF ERRORLEVEL 0 ECHO 成功拷贝文件 如if errorlevel 2 goto x24. if number 比较符 value commandEQU 等于NEQ 不等于LSS 小于LEQ 小于或等于GTR 大于GEQ 大于或等于5. if defined test command /如果定了了变量test,则执行command。如:if d

11、efined test echo It is defined.6. if 条件1 (command1) else (command2) /条件1后的命令行必须有括号。在if后,假设要执行多条命令,可以将这些命令放在一对括号中,且左括号必须跟if关键字在同一行,如:cd /d :/slfslfsl if errorlevel 1 (mkdir d:error mkdir d:1 mkdir d:2)(二) goto命令批处理文件运行到这里将跳到goto所指定的标号(标号即label,标号用:后跟标准字符串来定义)处,goto语句一般与if配合使用,根据不同的条件来执行不同的命令组。如: goto

12、 end :end echo this is the end 标号用":字符串"来定义,标号所在行不被执行。在有多个标号时,每个标号都要有goto语句跳出,否则各个标号程序会连续执行。 注意: (1) 标号前是ASCII字符的冒号":",冒号与标号之间不能有空格。 (2) 标号的命名规则与文件名的命名规则相同。 (3) DOS支持最长八位字符的标号,当无法区别两个标号时,将跳转至最近的一个标号。(三) choice命令使用此命令可以让用户输入一个字符用于选择,从而根据用户的选择返回不同的errorlevel,然后于if errorlevel配合,根据用户

13、的选择运行不同的命令。注意:choice命令为DOS或者Windows系统提供的外部命令,不同版本的choice命令语法会稍有不同,请用choice /?查看用法。choice的命令语法该语法为Windows 2003中choice命令的语法,其它版本的choice的命令语法与此大同小异: CHOICE /C choices /N /CS /T timeout /D choice /M text 描述: 该工具允许用户从选择列表选择一个项目并返回所选项目的索引。 参数列表: /C choices 指定要创建的选项列表。默认列表是 "YN"。 /即定义可选择项/N 在提示符中

14、隐藏选项列表。提示前面的消息得到显示,选项依旧处于启用状态。 /即Y,N,C?列表将隐藏,但提示用户选择的信息将正常显示。另外,/N必须用于/M参数之前。/CS 允许选择分大小写的选项。在默认情况下,这个工具是不分大小写的。 /T timeout 做出默认选择之前,暂停的秒数。可接受的值是从 0 到 9999。如果指定了 0,就不会有暂停,默认选项 会得到选择。 /D choice在 nnnn 秒之后指定默认选项。字符必须在用 /C 选项指定的一组选择中; 同时,必须用 /T 指定 nnnn。 /M text指定提示之前要显示的消息。如果没有指定,工具只显示提示。 /?显示帮助消息。 注意:

15、ERRORLEVEL 环境变量被设置为从选择集选择的键索引。列出的第一个选择返回 1,第二个选择返回 2,等等。如果用户按的键不是有效的选择,该工具会发出警告响声。如果该工具检测到错误状态,它会返回 255 的ERRORLEVEL 值。如果用户按 Ctrl+Break 或 Ctrl+C 键,该工具会返回 0 的 ERRORLEVEL 值。在一个批程序中使用 ERRORLEVEL 参数时,将参数降序排列。 例如: CHOICE /? CHOICE /C YNC /M "确认请按 Y,否请按 N,或者取消请按 C。" CHOICE /T 10 /C ync /CS /D y C

16、HOICE /C ab /M "选项 1 请选择 a,选项 2 请选择 b。" CHOICE /C ab /N /M "选项 1 请选择 a,选项 2 请选择 b。" 如果我运行命令:CHOICE /C YNC /M "确认请按 Y,否请按 N,或者取消请按 C。" 屏幕上会显示: 确认请按 Y,否请按 N,或者取消请按 C。 Y,N,C? 注意,用if errorlevel判断返回值时,要按返回值从高到低排列: echo off choice /C dme /M "defrag,mem,end" if error

17、level 3 goto end if errorlevel 2 goto mem if errotlevel 1 goto defrag :defrag c:/dos/defrag goto end :mem mem goto end :end echo good bye 注:如果在bat文件中出现外部程序,需要知道绝对路径,并需要用引号。如:“C:Program Files (x86)Microsoft OfficeOffice14”此批处理运行后,将显示"defrag,mem,endD,M,E?" ,用户可选择d m e ,然后if语句根据用户的选择作出判断,d表示执

18、行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,批处理运行结束。 (四) for命令:(参考 :/www blogs )对一个或一组文件,字符串或命令结果中的每一个对象执行特定命令,到达我们想要的结果。  注意:在批处理文件中使用 FOR 命令时,指定变量请使用 %variable,而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I。语法:FO

19、R 参数 %变量名 IN (相关文件或命令)   DO 执行的命令for命令可以带参数或不带参数,带参数时支持以下参数:/d /l /r /f  语法: 1. 不带参数:FOR %variable IN (set) DO command command-parameters %variable指定一个单一字母可替换的参数。 (set)指定一个或一组文件。可以使用通配符。 /不带参数时,只指文件。command指定对每个文件执行的命令。 command-paramet

20、ers 为特定命令指定参数或命令行开关。 DO后面可以跟if等其他命令,需要用()括起来。例如: for %i in (t*.*) do echo %i -显示当前目录下与t*.*相匹配的文件(只显示文件名,不显示路径)   for %i in (d:mydocuments*.doc) do echo %i -显示d:mydocuments目录下与*.doc相匹配的文件  2. 带有参数时:(1) 参数&#

21、160;/d (参数只能显示当前目录下的目录名字)格式:FOR /D %variable IN (set) DO command command-parameters这个参数主要用于目录搜索,不会搜索文件,/D 参数只能显示当前目录下的目录名字。(特别说明:只会搜索指定目录下的目录,不会搜索再下一级的目录。)  for /d %i in (c:*) do echo %i  -显示c盘根目录下的所有

22、目录  for /d %i in (?) do echo %i  -显示当前目录下名字只有1-3个字母的目录 (2) 参数 /R (搜索指定路径及所有子目录中与set相符合的所有文件)格式:FOR /R drive:path %variable IN (set) DO command command-parameters  此命令会搜索指定路径及所有子目录中

23、与set相符合的所有文件,注意是指定路径及所有子目录。set中的文件名如果含有通配符(?或*),则列举/R参数指定的目录及其下面的所有子目录中与set相符合的所有文件,无相符文件的目录则不列举。 如果set中为具体文件名,不含通配符,则枚举该目录树即列举该目录及其下面的所有子目录(并在后面加上具体的文件名),而不管set中的指定文件是否存在。 例如:for /r c: %i in (boot.ini) do echo %i -枚举了c盘所有目录,没有通配符,命令结果会将文件名boot.ini自动见到c:下所有的目录下,并显示出来。for /r c: %i in (boot*.ini)

24、 do echo %i -包括了通配符,只列举出保护符合通配符的文件所在的目录。for /r d:backup %i in (1) do echo %i -枚举dbackup目录 (3) 参数 /L (该集表示以增量形式从开始到结束的一个数字序列。可以使用负的 Step)格式:FOR /L %variable IN (start,step,end) DO command command-parametersfor /l %i in (1,1,5) do echo %i -输出1 2 3 4 5

25、/从1开始,递增1,最大值为5for /l %i in (1,2,10) do echo %i -输出1,3,5,7,9 for /l %i in (100,-20,1) do echo %i -输出100,80,60,40,20 for /l %i in (1,1,5) do start cmd -打开5个CMD窗口 for /l %i in (1,1,5) do md %i -建立从15共5个文件夹 for /l %i in (1,1,5) do rd /q %i -删除从15共5个文件夹(4) 参数/F(主要用来处理文件内容或命令的输出结果,/F默认将每行作为一个元素来处理。)格式: F

26、OR /F "options" %i IN (file) DO command / file代表一个或多个文件。for会依次将file中的文件打开,并且在进行到下一个文件之前将每个文件读取到内存,将每行作为一个的元素,%i代表这个元素。忽略空白的行。FOR /F "options" %i IN ("string") DO command / string 代表字符串FOR /F "options" %i IN ('command') DO command / command代表命令。命令行需要用单引

27、号。"options" 可选假设文件a.txt中有如下内容: 第1行第1列 第1行第2列 第1行第3列 第2行第1列 第2行第2列 第2行第3列 第3行第1列 第3行第2列 第3行第3列 for也可以完成同样的命令: for /f "tokens=*" %i in (a.txt) do echo %i 还是先从括号执行,因为含有参数/f,所以for会先打开a.txt,然后读出a.txt里面的所有内容,把它作为一个集合,并且以每一行作为一个元素,所以会产生这样的集合: "第1行第1列 第1行第2列 第1行第3列", /第一个元素 &qu

28、ot;第2行第1列 第2行第2列 第2行第3列", /第二个元素 "第3行第1列 第3行第2列 第3行第3列"   /第三个元素 集合中只有3个元素,同样用%i依次代替每个元素,然后执行do后面的命令。 tokens参数后面在描述。具体过程: 用%i代替"第1行第1列 第1行第2列 第1行第3列",执行do后面的echo %i,显示"第1行第1列 第1行第2列 第1行第3列", 用%i代替"第2行第1列 第2行第2列 第2行第3列",执行echo %i,显示"第2行第1列 第

29、2行第2列 第2行第3列", 依次,直到每个元素都代替完为止。为了加强理解/f的作用,请执行一下两个命令,比照即可明白: for /f %i in (a.txt) do echo %i /这个会显示a.txt里面的内容,因为/f的作用,会读出a.txt中 的内容。 for %i in (a.txt) do echo %i /而这个只会显示a.txt这个名字,并不会读取其中的内容。通过上面的学习,我们发现for /f会默认以每一行来作为一个元素,但是如果我们还想把每一行再分解更小的内容,该怎么办呢?不用担忧,for命令还为我们提供了更详细的参数,使我们将每一行分为更小的元素成为可能。

30、它们就是:delims和tokens参数(4.1) delims: 用来告诉for每一行应该拿什么作为分隔符,默认的分隔符是空格和tab键。比方,还是上面的文件,我们执行下面的命令: for /f "delims= " %i in (a.txt) do echo %i 显示的结果是: 第1行第1列 第2行第1列 第3行第1列 为什么是这样的呢。因为这里有了delims这个参数,=后面有一个空格,意思是再将每个元素以空格分割,默认是只取分割之后的第一个元素。 执行过程是: 将第一个元素"第1行第1列 第1行第2列 第1行第3列"分成三个元素:"第

31、1行第1列" "第1行第2列" "第1行第3列",它默认只取第一个,即"第1行第1列",然后执行do后面的命令,依次类推。(4.2) tokens参数:它的作用就是当你通过delims将每一行分为更小的元素时,由它来控制要取哪一个或哪几个。还是上面的例子,执行如下命令: for /f "tokens=2 delims= " %i in (a.txt) do echo %i 执行结果: 第1行第2列 第2行第2列 第3行第2列如果要显示第三列,那就换成tokens=3。如果要显示第二列和第三列,则换成tok

32、ens=2,3或tokens=2-3,如果还有更多的则为:tokens=2-10之类的。 但参数的个数要相应的增加。此时的命令为: for /f "tokens=2,3 delims= " %i in (a.txt) do echo %i %j delims指定在每行中,用空格作为分隔符,取每行的第2和第3和元素。用%i代替第2个元素,%j代替第3个元素。参数必须是按照英文字母顺序排列的,%j不能换成%k,因为i后面是j执行结果为: 第1行第2列 第1行第3列 第2行第2列 第2行第3列 第3行第2列 第3行第3列(4.3) 对于通配符*,就是把这一行全部或者这一行的剩余部

33、分当作一个元素了。 比方: for /f "tokens=* delims= " %i in (a.txt) do echo %i 执行结果为: 第1行第1列 第1行第2列 第1行第3列 第2行第1列 第2行第2列 第2行第3列 第3行第1列 第3行第2列 第3行第3列再如: for /f "tokens=2,* delims= " %i in (a.txt) do echo %i %j /用%i代替第二列,用%j代替剩余的所有执行结果为: 第1行第2列 第1行第3列 第2行第2列 第2行第3列 第3行第2列 第3行第3列 (4.4) skip参数:sk

34、ip就是要忽略文件的前多少行比方: for /f "skip=2 tokens=*" %i in (a.txt) do echo %i 结果为: 第3行第1列 第3行第2列 第3行第3列 用skip来告诉for跳过前两行。 如果不加tokens=*的话,执行结果为: 第3行第1列(4.5) eol用来指定当一行以什么符号开始时,就忽略它。再如,当a.txt内容变成: .第1行第1列 第1行第2列 第1行第3列 .第2行第1列 第2行第2列 第2行第3列 第3行第1列 第3行第2列 第3行第3列 for /f "eol=. tokens=*" %i in

35、(a.txt) do echo %i结果是: 第3行第1列 第3行第2列 第3行第3列 用eol来告诉for忽略以"."开头的行。 同样也必须加tokens=*,否则只会显示"第3行第1列"(五) set命令:设置变量1. set显示环境变量set 会显示当前所有的系统环境变量set c 会显示所有以c或C开头的变量。(即:不区分大小写)set com 显示所有以com或Com开头的变量。 2. set设置环境变量如:set str=ok /就是将变量str的值设置成字符串“OK”注:如果在变量值中有特殊字符,则set后面的表达式需要用双引号括起来。如:

36、set “str=ok>”3. 带参数 /a的set 数值计算set的/A参数就是让SET可以支持数学符号进行加减等一些数学运算! 支持的数学运算包含优先权递减:() /分组! /一元运算符* / % /算数运算符+ /算数运算符<< >> /逻辑移位& /按位“与” /按位“异”| /按位“或”= *= /= %= += -= /赋值&= = |= <<= >>=, /表达式分隔符如:set /a var=10-2 /结果:var=8,如果没有/a,则var的值是字符串10-2set /a var=2*2set /a va

37、r=2/2set /a var=(1+1)+(1+1)set /a a=1+1,b=2+1,c=3+1 /使用“,”将表达式分隔。echo %a% %b% %c%注意:逻辑运算符和取余操作符需要用双引号括起来,如:set /a var=1 “&” 1set /a var=1 “%” 1set /a var=2 “<<” 2 4. 带参数/p的set命令:允许变量值是用户的输入行如:set /p str=Please input you string.echo Your input is: %str%.注意:set /p的特殊用法set /p=A /直接显示等号后面的内容,相

38、当于echo A.但是显示内容后需要手动按回车键后才能继续执行下一条语句。set /p=A<null /显示内容并不带回车。即:显示完后立即执行下一条语句。由于没有回车,下一条语句的输出会跟在这条语句的后面。echo offfor /l %i in (1 1 300) do (set /p=O<null /输出字母Ofor /l %a in (1 1 280) do ver>null) /利用for循环运行ver>null来到达延时的目的。其中ver是显示当前命令行窗口版本的命令。也可以将var换位help,time /t等其他命令。pause>null5. 字符

39、串截取格式:set a=%var:start,len% /从变量var的值的start位开始截取,一共截取len位。假设start或len位负数,表示从倒数第几位开始截取或截取倒数几位。位数的表示是从0开始的。echo offset var= baidu set a=%var:1,2%echo %a%pause>null从第1位(也即第二个字符)开始,截取2个字符。%var:5% /从第6开始,截取剩下所有字符。%var:-3% /截取倒数3位%var:0,-len% /截取从第一位开始,倒数第len位结束的字符。六、 批处理例如1. IF-EXIST1) 首先用记事本在C:/建立一个t

40、est1.bat批处理文件,文件内容如下: echo off IF EXIST /AUTOEXEC.BAT TYPE /AUTOEXEC.BAT IF NOT EXIST /AUTOEXEC.BAT ECHO /AUTOEXEC.BAT does not exist 然后运行它: C:/>TEST1.BAT 如果C:/存在AUTOEXEC.BAT文件,那么它的内容就会被显示出来,如果不存在,批处理就会提示你该文件不存在。 2) 接着再建立一个文件,内容如下:ECHO OFF IF EXIST /%1 TYPE /%1 IF NOT EXIST /%1 ECHO /%1 does not

41、exist 执行: C:/>TEST2 AUTOEXEC.BAT 该命令运行结果同上。 说明: (1) IF EXIST 是用来测试文件是否存在的,格式为 IF EXIST 路径+文件名 命令 文件中的%1是参数,DOS允许传递9个批参数信息给批处理文件,分别为%1%9(%0表示test2命令本身) ,这有点象编程中的实参和形参的关系,%1是形参,是实参。3)更进一步的,建立一个名为TEST3.BAT的文件,内容如下: echo off IF "%1" = "A" ECHO XIAO IF "%2" = "B"

42、; ECHO TIAN IF "%3" = "C" ECHO XIN 如果运行: C:/>TEST3 A B C 屏幕上会显示: XIAO TIAN XIN 如果运行: C:/>TEST3 A B 屏幕上会显示 XIAO TIAN 在这个命令执行过程中,DOS会将一个空字符串指定给参数%3。 2. IF-ERRORLEVEL例如:建立TEST4.BAT,内容如下: ECHO OFF XCOPY C:/AUTOEXEC.BAT D:IF ERRORLEVEL 1 ECHO 文件拷贝失败 IF ERRORLEVEL 0 ECHO 成功拷贝文件 然后执行文件: C:/>TEST4 如果文件拷贝成功,屏幕就会显示"成功拷贝文件",否则就会显示"文件拷贝失败"。 IF ERRORLEVEL 是用来测试它的上一个DOS命令的返回值的,注意只是上一个命令的返回值,而且返回值必须依照从大到小次序顺序判断。因此下面的批处理文件是错误的: ECHO OFF XCOPY C:/AUTOEXEC.BAT D:/ IF ERRORLEVEL 0 ECHO 成功拷贝文件 IF ERROR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论