第一篇:T-SQL批处理(模版)
先打个比方:如果你家来了客人,你妈妈给你2元钱到商店买1瓶啤酒给客人喝。结果客人不够喝,你妈怕浪费,又给你2元钱让你下楼再去买1瓶,结果又不够喝,又让你下楼再买1瓶,还不够,再让你买一瓶……这时你可能会怎么说?你肯定会不耐烦地回答:妈,拜托你,别让我每次1瓶1瓶的买,1次多买几瓶不就行了吗?
我们执行SQL语句同样如此,因为SQL Server是网络数据库,一台服务器可能有很多远程客户端,如果在客户端一次发送1条SQL语句,然后客户返回结果;然后再发送1条SQL语句,再返回,效率太低了。所以为了提高效率,SQL Server就引出了批处理的概念。
批处理是包含一个或多个 SQL 语句的组,从应用程序一次性地发送到SQL Server执行 SQL Server 将批处理语句编译成一个可执行单元,此单元称为执行计划。执行计划中的语句
每次执行一条
SELECT * FROM stuInfo
SELECT * FROM stuMarks
UPDATE stuMarks
SET writtenExam=writtenExam+2
GO
GO是批处理的标志,表示SQL Server将这些T-SQL语句编译为一个执行单元,提高执行效
率
一般是将一些逻辑相关的业务操作语句,放置在同一批中,这完全由业务需求和代码编写者决定 SQLServer规定:如果是建库、建表语句、以及我们后面学习的存储过程和视图等,则必须在语句末尾添加 GO 批处理标志
第二篇:批处理练习题
批处理实现两文本同行交替输出
有两个文本如下(实际中并不知道两文本各有多少行): 文本1.txt aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ccccccccccccccccccccccccccccccccccccccc eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee ggggggggggggggggggggggggggggggggggggggg www.xiexiebang.come easy]
I should have known all along.There was something wrong.I just never read between the lines.Then I woke up one day and found you on your way.Leaving nothing but my heart behind.What can I do to make it up to you.Promises don't come easy.But tell me if there's a way to bring you back home to stay.Well I'd promises anything to you.I've been walkin' around with my head hanging down.Wondrin' what I'm gonna do.'Cause when you walked out that door.要求,CMD原始窗口中,不调节窗口大小,不生成临时文件,居中显示文本内容。输出如下: 代码: [Promise don't come easy] I should have known all along.There was something wrong.I just never read between the lines.Then I woke up one day and found you on your way.Leaving nothing but my heart behind.What can I do to make it up to you.Promises don't come easy.But tell me if there's a way to bring you back home to stay.Well I'd promises anything to you.I've been walkin' around with my head hanging down.Wondrin' what I'm gonna do.'Cause when you walked out that door.@echo off copy /y 1.txt 2.txt>nul echo.>>2.txt&echo end>>2.txt for /f “tokens=1,2* delims=: ” %%i in('findstr /n /o.* 2.txt')do(set “_%%i=%%j”&set “.%%i=%%k”
if %%i geq 2 call :lp %%i)del /q 2.txt&pause>nul&goto :eof :lp set /a n=%1-1 set /a num=_%1-_%n%-2 set /a kl=(80-num)/2 for /l %%i in(1,1,%kl%)do set /p= @echo off for /f “delims=” %%.in(1.txt)do(set “str=%%.” call,set “str=%%str:*a=%%” for /f “delims=a” %%{ in(“%%.”)do(set “var=%%{” call,echo.%%var:0=%%a%%str%%))pause>nul @echo off for /f “tokens=1,2 delims=a” %%i in(1.txt)do(if “%%j” neq “"(set ”str=%%i“ call,set ”str=%%str:0=%%" call,echo %%str%%a%%j)else(echo a%%i))pause>nul Windows批处理命令总结 命令:echo 1.1 echo含义 显示消息,或者启用或关闭命令回显。ECHO [ON | OFF]、ECHO [message] 若要显示当前回显设置,请键入不带参数的 ECHO。 1.2 echo举例 ①echo 显示当前回显设置,结果有ECHO 处于打开状态、ECHO 处于关闭状态 ②echo on 打开回显设置,即ECHO 处于打开状态 ③echo off 关闭回显设置,即ECHO 处于关闭状态 ④echo 我是中国人 显示输出的内容信息,窗口输出“我的中国人”,不需要加单双引号 ⑤echo.换行 命令:pause 2.1 pause含义 暂停批处理程序,并显示以下消息:请按任意键继续...2.2 pause举例 ①pause 显示“请按任意键继续...”信息 命令:@ 3.1 @含义 用于禁止当前执行的命令回显在屏幕上 3.2 @举例 @echo off 该命令行不会回显在屏幕上 4 命令:goto 4.1 goto含义 将 cmd.exe 定向到批处理程序中带标签的行。 GOTO label label 指定批处理程序中用作标签的文字字符串。标签必须单独一行,并且以冒号打头。如果命令扩展被启用,GOTO 会如下改变: GOTO 命令现在接受目标标签 :EOF,这个标签将控制转移到当前批脚本文件的结尾。不定义就退出批脚本文件,这是一个容易的办法。有关能使该功能有用的 CALL 命令的扩展描述,请键入CALL /?。 4.2 goto举例 ①命令行如下 执行结果如下 命令:call 5.1 call含义 从批处理程序调用另一个批处理程序。 CALL [drive:][path]filename [batch-parameters] batch-parameters 指定批处理程序所需的命令行信息。如果命令扩展被启用,CALL 会如下改变: CALL 命令现在将卷标当作 CALL 的目标接受。语法是:CALL:label arguments 一个新的批文件上下文由指定的参数所创建,控制在卷标被指定后传递到语句。你必须通过达到批脚本文件末两次来 “exit” 两次。第一次读到文件末时,控制会回到 CALL 语句的紧后面。第二次会退出批脚本。5.2 call举例 ①call 文件名 调用外部的批处理文件,并执行内容 执行结果如下: 命令:if 6.1 if含义 执行批处理程序中的条件处理。 IF [NOT] ERRORLEVEL number command IF [NOT] string1==string2 command IF [NOT] EXIST filename command NOT 指定只有条件为 false 的情况下,Windows 才应该执行该命令。 ERRORLEVEL number 如果最后运行的程序返回一个等于或大于指定数字的退出代码,指 定条件为 true。 string1==string2 如果指定的文字字符串匹配,指定条件为 true。 EXIST filename 如果指定的文件名存在,指定条件为 true。 command 如果符合条件,指定要执行的命令。如果指定的条件为 FALSE,命令后可跟 ELSE 命令,该命令将 在 ELSE 关键字之后执行该命令。ELSE 子句必须出现在同一行上的 IF 之后。例如: IF EXIST filename.(del filename.)ELSE(echo filename.missing.)6.2 if举例 ①字符串匹配判断和文件是否存在判断(既可以为相对路径,也可以为绝对路径)比较运算符 比较运算符有以下几种: EQU不等于 LSS小于或等于 GTR大于或等于 命令:for 8.1 for含义 对一组文件中的每一个文件执行某个特定命令。 FOR %variable IN(set)DO command [command-parameters] %variable 指定一个单一字母可替换的参数。 (set) 指定一个或一组文件。可以使用通配符。 command 指定对每个文件执行的命令。 command-parameters 为特定命令指定参数或命令行开关。在批处理程序中使用 FOR 命令时,指定变量请使用 %%variable 而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I.如果启用命令扩展,则会支持下列 FOR 命令的其他格式: FOR /D %variable IN(set)DO command [command-parameters] 如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。FOR /R [[drive:]path] %variable IN(set)DO command [command-parameters] 检查以 [drive:]path 为根的目录树,指向每个目录中的 FOR 语句。 如果在 /R 后没有指定目录规范,则使用当前目录。如果集仅为一个单点(.)字符,则枚举该目录树。 FOR /L %variable IN(start,step,end)DO command [command-parameters] 该集表示以增量形式从开始到结束的一个数字序列。因此,(1,1,5)将产生序列 8.2 for举例 ①循环输出数字和循环输出3.txt中的文本内容 命令:rem 9.1 rem含义 在批处理文件或 CONFIG.SYS 里加上注解或说明。REM [comment] 9.2 rem举例 ①rem 这是一条注释,不会执行 10 命令:start 10.1 start含义 重新打开一个窗口或执行程序,并根据参数执行相应命令 10.2 start举例 ①start notepad++ 打开notepad++程序 ②start “这是新的cmd窗口” echo 在第二个窗口执行程序 命令:set 11.1 set含义 显示、设置或删除 cmd.exe 环境变量。SET [variable=[string]] variable 指定环境变量名。 string 指定要指派给变量的一系列字符串。要显示当前环境变量,键入不带参数的 SET。 11.2 set举例 ①set 显示所有的环境变量,环境变量不区分大小写 ②set java_home 显示以“java_home”开头的环境变量 ③set JAVA_HOME=D:myworkjdkinstall 设置JAVA_HOME的值 ④set /p var=请输入您的姓名: 提示用户输入参数,%var%调用该参数 ⑤set /a var=2*2 设置运算表达式 命令:choice 12.1 choice含义 CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text] 描述:该工具允许用户从选择列表选择一个项目并返回所选项目的索引。参数列表: /C choices 指定要创建的选项列表。默认列表是 “YN”。 /N 在提示符中隐藏选项列表。提示前面的消息得到显示,选项依旧处于启用状态。 /CS 允许选择分大小写的选项。在默认情况下,这个工具 是不分大小写的。 /T timeout 做出默认选择之前,暂停的秒数。可接受的值是从 0 到 9999。如果指定了 0,就不会有暂停,默认选项 会得到选择。 /D choice 在 nnnn 秒之后指定默认选项。字符必须在用 /C 选 项指定的一组选择中;同时,必须用 /T 指定 nnnn。 /M text 指定提示之前要显示的消息。如果没有指定,工具只 显示提示。 12.2 choice举例 CHOICE /C YNC /M “确认请按 Y,否请按 N,或者取消请按 C。” CHOICE /T 10 /C ync /CS /D y CHOICE /C ab /M “选项 1 请选择 a,选项 2 请选择 b。” CHOICE /C ab /N /M “选项 1 请选择 a,选项 2 请选择 b。” 13 命令:copy 13.1 copy含义 将一份或多份文件复制到另一个位置。 COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/L] [/A | /B ] source [/A | /B] [+ source [/A | /B] [+...]] [destination [/A | /B]] source 指定要复制的文件。 /A 表示一个 ASCII 文本文件。 /B 表示一个二进位文件。 /D 允许解密要创建的目标文件 destination 为新文件指定目录和/或文件名。 /V 验证新文件写入是否正确。 /N 复制带有非 8dot3 名称的文件时,尽可能使用短文件名。 /Y 不使用确认是否要覆盖现有目标文件的提示。 /-Y 使用确认是否要覆盖现有目标文件的提示。 /Z 用可重新启动模式复制已联网的文件。 /L 如果源是符号链接,请将链接复制到目标而不是源链接指向的实际文件。 13.2 copy举例 ①copy a.txt bak.txt 复制a.txt文件,命名为bak.txt,不能复制目录下的文件并重命名 ②copy /b f:1.txt+2.txt f:3.txt 合并文件到一个新的文件 命令:move 14.1 move含义 移动文件并重命名文件和目录。要移动至少一个文件: MOVE [/Y | /-Y] [drive:][path]filename1[,...] destination 要重命名一个目录: MOVE [/Y | /-Y] [drive:][path]dirname1 dirname2 [drive:][path]filename1 指定你想移动的文件位置和名称。 destination 指定文件的新位置。目标可包含一个驱动器号 和冒号、一个目录名或组合。如果只移动一个文件 并在移动时将其重命名,你还可以包括文件名。 [drive:][path]dirname1 指定要重命名的目录。 dirname2 指定目录的新名称。 /Y 取消确认覆盖一个现有目标文件的提示。 /-Y 对确认覆盖一个现有目标文件发出提示。 14.2 move举例 ①move 3.txt D:a.txt 文件移动并重命名 命令:del 15.1 del含义 删除一个或数个文件。 DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names names 指定一个或多个文件或者目录列表。通配符可用来删除多个文件。 如果指定了一个目录,该目录中的所有文件都会被删除。 /P 删除每一个文件之前提示确认。 /F 强制删除只读文件。 /S 删除所有子目录中的指定的文件。 /Q 安静模式。删除全局通配符时,不要求确认 /A 根据属性选择要删除的文件 属性 R 只读文件 S 系统文件 H 隐藏文件 A 存档文件 I 无内容索引文件 L 重分析点 表示“否”的前缀 /B 使用空格式(没有标题信息或摘要)。 /C 在文件大小中显示千位数分隔符。这是默认值。用 /-C 来 禁用分隔符显示。 /D 跟宽式相同,但文件是按栏分类列出的。 /L 用小写。 /N 新的长列表格式,其中文件名在最右边。 /O 用分类顺序列出文件。 排列顺序 N 按名称(字母顺序) S 按大小(从小到大) E 按扩展名(字母顺序) D 按日期/时间(从先到后) G 组目录优先 -反转顺序的前缀 /P 在每个信息屏幕后暂停。 /Q 显示文件所有者。 /R 显示文件的备用数据流。 /S 显示指定目录和所有子目录中的文件。 /T 控制显示或用来分类的时间字符域。 17.2 dir举例 ①dir /o F: 分类显示F盘下的文件和文件夹 命令:find 18.1 find含义 在文件中搜索字符串。 FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] “string” [[drive:][path]filename[...]] /V 显示所有未包含指定字符串的行。 /C 仅显示包含字符串的行数。 /N 显示行号。 /I 搜索字符串时忽略大小写。 /OFF[LINE] 不要跳过具有脱机属性集的文件。 “string” 指定要搜索的文本字符串。 [drive:][path]filename 指定要搜索的文件。 18.2 find举例 ①find /c /n “视” oa视图对比.txt 从文件中查找“视”,并显示行号 命令:type 19.1 type含义 显示文本文件的内容,或者创建文件 TYPE [drive:][path]filename 19.2 type举例 ①type nul>a.txt 创建文件a.txt ②type a.txt 查看文件内容 命令:md/mkdir 20.1 md含义 创建目录。 MKDIR [drive:]path MD [drive:]path 如果命令扩展被启用,MKDIR 会如下改变: 如果需要,MKDIR 会在路径中创建中级目录。例如: 假设 a 不 存在,那么: mkdir abcd 与:mkdir a chdir a mkdir b chdir b mkdir c chdir c mkdir d 相同。如果扩展被停用,则需要键入 mkdir abcd。 20.2 md举例 ①md abcd 创建多级目录 《Photoshop批处理》微课教学设计 课前导读 主要介绍“动作”调板的功能和使用方法,一张图片的添加水印和对图像对比度、亮度的处理以及批处理图像操作及应用。通过对本课的学习,利用Photoshop动作和自动化处理功能、记录与播放命令,批量处理图像,能够快速处理图像和设计,从而提高图像处理的效率。 学习目标 1、掌握Photoshop中动作与批处理的概念,掌握“动作”调板功能和使用方法。 2、掌握Photoshop图像自动化处理技巧,用动作设计各种图像效果,掌握批处理命令的使用方法。 操作过程 一、首先回顾一下上节课所讲的一张图片的添加水印效果和对图像对比度、亮度的处理,然后具体讲解批处理的原理以及过程,并利用学校网站添加水印图片为例,讲解具体的过程,并制作动作命令 a)介绍调用“动作”面板的三种方法 b)具体操作如何通过“动作面板”录制批处理的过程。 1.打开Photoshop,选中“窗口→动作”命令,打开动作命令窗口。此时,动作命令栏里只有默认命令序列和一些默认动作。 2.单击动作命令栏“创建新动作”快捷命令图标,此时就会在“默认动作”的序列下创建新动作,出现的命令对话框,在“名称”栏中输入自己想要的动作名称pcl,然后单击“记录”按钮,记录开始。 3.开始创建各项需要的动作,计算机会自动记录你的各个动作,这里举个我们学校网站上传图片的要求进行处理图片、(要求:像素大小1024*768,图片明亮清晰,有学校的水印logo)这个自动调整图片对比度并缩小图片的例子: 点击“图像→图像大小”,在对话框里设置图像高度、宽度的大小,我们这里把宽度设为1024像素,高度768像素大小; 点击“图像→调整→亮度/对比度”,将会出现调整图片亮度30,对比度20,使图片变亮; 添加水印效果,在水印图片上ctrl+a 全选图片,ctrl+c复制图片,在需要添加水印效果的图片上ctrl+v粘贴,然后调节水印的位置以及大小。 点击“文件→存储为”,然后在对话框中选择保存图片的位置; 最后关闭图片; 4.单击动作命令栏下方的“停止”按钮停止记录。这时我们需要的动作命令制作完毕。 二、用自动批处理命令处理图片 1、先做准备工作:把所有待处理的图片放到一个文件夹里,新建一个文件夹用来放置处理过的图片。执行“文件→自动→批处理”打开批处理命令框。 1、接着设置各个参数和选项: (1)在“动作”下拉菜单中选择“pcl”。 (2)在“源”下拉菜单中选择“文件夹”。 (3)单击“选取”按钮在弹出的对话框中选择待处理的图片所在的文件夹,单击“确定”。 (4)在“目的”下拉菜单中选择“文件夹”,单击“选择”按钮,在弹出的对话框中选择准备放置处理好的图片的文件夹,单击“确定”。 (5)在“文件命名”的第一个框的下拉菜单中选择“文档名称”。 (6)在“错误”下拉菜单中选择“因错误而停止”,单击“另存为”选择一个文件夹。批处理若中途出了问题,计算机会记录错误的细节,并停止。 这一切做好,检查无误之后,单击“确定”,计算机就会开始一张一张地打开处理和保存那些我们选中的图片,直到任务结束。我们耐心的等待图片处理的过程。 小结 回顾总结,让同学们在学习ps中遇到什么问题要认真用心,有耐心,让他们有什么应用的技巧和方法去分享。 dos 批处理命令(forfiles) Windows Server 2003内置的命令行文件,不适合于XP系统 1.用批处理文件删除当前目录下 7 天以前的扩展名为bkf文件(以当前系统时间为基准) 示例: forfiles /m *.bkf /d-7 /c “cmd /c del @file /f” 2.forfiles 自动删除7天前文件(以当前系统时间为基准) 示例: forfiles /p “d:test” /s /m *.* /d-7 /c “cmd /c del @path” d:test换成你要的目录路径;/d-7 指删除7天以前文件。 3.删除所有的空目录(以删除d:test目录下为例): dir /ad/b/s d:test |sort /r >d:kill.txt For /f “tokens=*” %%i in(d:kill.txt)DO rd “%%i” del d:kill.txt 4.先删7 天以前文件,再删所有的空目录;把以下复制到bat文件中。@echo off forfiles /p “d:test” /s /m *.* /d-7 /c “cmd /c del @path” dir /ad/b/s d:test |sort /r >d:kill.txt For /f “tokens=*” %%i in(d:kill.txt)DO rd “%%i” del d:kill.txt 5.forfiles 命令的用法及参数: forfiles /p <目标目录名> /d <天数> /c <执行的命令> /p 指定了要在哪个目录里查找文件,默认是当前工作目录。 /d 指定一个日期或天数,用于比较文件的最后修改日期是否符合条件。/c 对每个找到的文件执行的命令。 例1.要把在C盘根目录下最后修改日期大于或等于2010年1月7日的文件复制到D盘根目录下: forfiles /p “c:” /d “2007-7-1” /c “cmd /c copy @path d:” 例2.删除在C盘backup目录下最后修改日期在10天前的文件: forfiles /p “c:backup” /d-10 /c “cmd /c echo deleting @file...&& del /f @path” 6.forfiles /p 包含要删除文件的完整路径(如:F:Logfiles)/m *.log-d-7 /c “cmd /c del /f @path” 解释一下相关参数及命令 /p : 指定开始搜索文件的位置,如果不指定则默认为当前目录。/m 如“manmee_*.log”这样以manmee开头的所有日志文件。如果不指定此参数则默认为“*.*”。 /d [{+|-}][{ 天为基础,7天以前的文件。当然这里还可以指定具体时间,例如:“/d-01/7/2010”这样所有早于2010年 1月7日的文件。注意指定的时间必须是“MM/DD/YYYY”的格式。 /c 对所有文件以此执行指定的命令,命令体须在双引号(“)内,默认是”cmd /c echo @file“。上文中用 到的是”cmd /c del /f @path“删除指定文件。(这里的@file 和 @path 为变量,下文中将解释。) 下面说一下上文中用到的参数: @PATH : 表示文件的完整的路径。 @File : 表示文件名称。 接下来我们看看删除文件夹的操作,如果你看了上面的介绍,相信这命令你一看就能看懂。 forfiles /p 包含文件夹的路径(如:F:)/m 文件夹名称(如:LogFiles)-d 0 /c ”cmd /c if @ISDIR == true rd /s/q @path“ 注意这里的”包含文件夹的路径“不能包含要删除的文件夹,如以上代码所表示的就是,在F盘中查找名为 LogFiles的文件或文件夹(不能指定查找文件夹,不过在删除时我们做了判断)。还有就是这里出现了一个新的参数”@ISDIR“他用于判断当前文件类型是否是”文件夹类型“,如果是则为 true否则为false。 相信到这大家就明白了,最后再将代码保存为批处理文件,然后加入计划任务定期执行即可。 看了上面的例子,觉得在 Windows Server 2003 下面要删除老文件很简单吧。但如果操作系统是 Windows 2000/XP 就比较麻烦,因为它们没有forfiles命令,只能靠自己写批处理来 实现了。 下面是我写的批处理文件内容: @echo off rem ****************************** rem * 按时间删除文件目录的批处理 * rem ****************************** rem 设置临时目录的路径 set tempDir=%tmp%remove_%date:~0,10% if not exist %tempDir% md %tempDir% rem 设置处理日期的脚本文件的路径 set scriptFile=%tempDir%get_date.vbs rem 获得要保留的天数 set days=%~1 if ”%days%“ == ”“ goto printUsage rem 获得目标目录的路径 set dirPath=%~2 if ”%dirPath%“ == ”“ set dirPath=.rem 获得要操作的文件形式 set fileSpec=%~3 if ”%fileSpec%“ == ”“ set fileSpec=*.* rem 生成计算日期的脚本文件并获得删除的截止日期 echo d=date()-%1 > %scriptFile% echo s=right(”0000“ ^& year(d),4)^& ”-“ ^& right(”00“ ^& month(d),2)^& ”-“ ^& right(”00“ ^& day(d),2)>> %scriptFile% echo wscript.echo s >> %scriptFile% for /f %%i in('cscript /nologo %scriptFile%')do set lastDate=%%i rem 处理目标目录里的每个对象 for /f ”tokens=1,2,3* delims=<> “ %%i in('dir ”%dirPath%%fileSpec%“ /a /-c /tc')do call :proc ”%%i“ ”%%j“ ”%%k“ ”%%l“ goto :done rem 处理目标目录里对象的过程 :proc rem 获得对象的创建日期并判断是否为有效格式 set fileDate=%~1 echo %fileDate% | findstr ”[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]“ > nul if errorlevel 1 goto end rem 获得对象的类型 set fileType=%~3 if ”%fileType%“ == ”“ goto end rem 获得对象的名称 set fileName=%~4 if ”%fileName%“ == ”“ goto end if ”%fileName%“ == ”.“ goto end if ”%fileName%“ == ”..“ goto end if ”%fileName%“ == ”字节“ goto end if ”%fileName%“ == ”可用字节“ goto end rem 判断对象日期是否小于或等于删除的截止日期 if ”%fileDate:~0,10%“ leq ”%lastDate%“(echo deleting ”%fileName%“...if ”%fileType%“ == ”DIR“(rd /s /q ”%dirPath%%fileName%“)else(del /q /f ”%dirPath%% fileName%")) goto end :error echo An error occurred during backuping.:done rd /s /q %tempDir% goto end :printUsage echo Usage: %0 ^ goto end :end 主要是利用Windows的脚本功能来计算要删除文件的截止日期,然后for加dir命令来提取文件的日期进行 判断。 关于forfiles和for的详细信息,可以在Windows的帮助与支持中找到。第三篇:Windows批处理命令总结详解
第四篇:_《Photoshop批处理》微课教学设计 _
第五篇:dos 批处理命令_forfiles