Windows 7 脚本文件创建与批处理编程指南
脚本文件概述
脚本文件是一组 CLI(命令行界面)指令的集合,它们被整合在一个文档或小程序中,用于帮助自动化重复任务。手动输入每一行指令也能完成任务,但脚本文件能让工作变得更轻松。接下来将学习如何构建脚本文件,并通过添加决策能力和循环功能来增强它们。
六步问题解决流程
解决问题的能力通常是后天习得的,而不是与生俱来的。建立一个系统、逻辑的问题解决流程可以显著提升开发有效脚本文件的能力。以下是一个六步问题解决流程,可用于分析问题并创建成功的解决方案:
1.
阅读问题陈述并命名编程项目
:明确项目的名称,以便更好地组织和理解任务。
2.
阅读问题陈述并撰写问题描述摘要
:简要概括问题的核心内容。
3.
阅读问题摘要并列出已知输入元素
:确定脚本文件所需的输入信息。
4.
阅读问题摘要并列出显示(输出)元素
:明确脚本文件将输出的内容。
5.
阅读问题摘要并确定和列出处理步骤
:规划解决问题的具体步骤。
6.
阅读问题摘要并定义常量和变量
:确定脚本中需要使用的常量和变量。
示例
假设需要创建一个脚本程序,列出 Accounting 目录中所有扩展名为 .txt 且文件名中包含 10 的文件名。
1.
命名编程项目
:“Text files for ’10”
2.
问题描述摘要
:“Change to the Accounting directory and find the files that have a .txt extension with the digits 10 in the filename.”
3.
已知输入元素
:无
4.
显示(输出)元素
:扩展名为 .txt 且文件名中包含 10 的文件名
5.
处理步骤
:切换到 Accounting 目录并查找 2010 年的 .txt 文件
6.
常量和变量
:无
根据上述信息,编写所需的语句:
CD accounting
FIND 10 *.txt
Windows 7 批处理程序创建
批处理程序(或批处理文件)是一种未格式化的文本文件,包含一个或多个 Windows 7 命令,扩展名为 .cmd。在命令提示符中输入批处理程序的名称时,文件中的命令将作为一个组执行。
批处理参数的使用
批处理参数可以包含在执行程序时需要传递给批处理程序的任何信息。参数 %0 到 %9 用空格、逗号或分号分隔。%0 是批处理命令在命令行上的名称,%1 表示批处理命令后输入的第一个字符串,%2 表示第二个字符串,依此类推。
示例
将 Folder1 的内容复制到 Folder2,在名为 mycopy.cmd 的批处理文件中输入以下内容:
XCOPY %1\*.* %2
运行文件时,输入以下命令:
mycopy.cmd C:\folder1 E:\folder2
此命令与在批处理文件中输入以下命令具有相同的效果:
XCOPY C:\folder1\*.* E:\folder2
批处理参数修饰符
可以使用修饰符来扩展批处理参数,使其成为部分或完整的文件名或目录名。以下是一些常用的修饰符:
| 修饰符 | 描述 |
| ---- | ---- |
| %~1 | 扩展 %1 并去除周围的引号 |
| %~f1 | 将 %1 扩展为完全限定的路径名 |
| %~d1 | 将 %1 扩展为驱动器号 |
| %~p1 | 将 %1 扩展为路径 |
| %~n1 | 将 %1 扩展为文件名 |
| %~x1 | 将 %1 扩展为文件扩展名 |
| %~s1 | 将 %1 扩展为仅包含短名称的路径 |
| %~a1 | 将 %1 扩展为文件属性 |
| %~t1 | 将 %1 扩展为文件的日期和时间 |
| %~z1 | 将 %1 扩展为文件的大小 |
复合结果示例
| 修饰符 | 描述 | 示例 |
|---|---|---|
| %~dp1 | 将 %1 扩展为驱动器号和路径 | C:\Shared\ |
| %~nx1 | 将 %1 扩展为文件名和扩展名 | Program1.html |
| %~ftza1 | 将 %1 扩展为类似 DIR 的输出行 | 10/24/2011 08:28 PM 94 Program1.html |
ECHO 命令显示文本
使用 ECHO 命令将文本显示到标准输出设备。命令语法如下:
ECHO [{on|off}] [message]
-
{on|off}:指定是否打开或关闭命令回显功能 -
message:指定要在屏幕上显示的文本
当不带参数使用 ECHO 命令时,它将显示当前的回显设置。在回显关闭时,ECHO message 命令很有用。例如,要显示多行消息而不显示其他命令,可以在批处理程序中使用 ECHO off 命令后包含多个 ECHO message 命令。要防止某一行回显,在命令前插入 @。要在屏幕上回显空行,输入 ECHO 后接一个句点。
示例
@ECHO off
ECHO.
ECHO this batch program
ECHO formats and checks
ECHO new disks
ECHO.
FOR 命令重复执行命令
FOR 命令用于对特定的一组项目(如文本字符串、文件名和目录)执行命令。命令语法如下:
FOR {%%variable} IN (set) DO command [CommandLineOptions]
-
{%%variable}:语法的必需部分,表示可替换的参数,变量区分大小写,必须用字母值表示,如 %%A、%%B 或 %%C -
(set):语法的必需部分,指定要使用指定命令处理的一个或多个文件、目录、值范围或文本字符串(括号也是必需的) -
Command:语法的必需部分,指定要对指定 (set) 中包含的每个文件、目录、值范围或文本字符串执行的命令 -
CommandLineOptions:指定要与指定命令一起使用的任何命令行选项
示例
FOR %%V IN (Blue Green Red) DO @ECHO %%V
文件集示例
(*.doc)
(*.doc *.txt *.me)
(jan*.doc jan*.rpt feb*.doc feb*.rpt)
(ar??2009.* ap??2009.*)
显示 .doc 或 .txt 文件内容
FOR %%F IN (*.doc *.txt) DO TYPE %%F
GOTO 命令分支
在批处理程序中,GOTO 命令将 Windows 7 引导到由标签标识的行。当 Windows 7 找到标签时,它将处理下一行开始的命令。命令语法如下:
GOTO label
-
label:指定要跳转到的批处理程序中的行。标签值必须与批处理程序中的标签匹配。批处理程序中的标签必须以冒号 (:) 开头。如果批处理程序中不包含指定的标签,批处理程序将停止并显示“Label not found”消息。
IF 命令决策
IF 命令用于在批处理程序中执行条件处理和做出决策。命令语法如下:
IF [not] errorlevel number command [else expression]
IF [not] string1==string2 command [else expression]
IF [not] exist FileName command [else expression]
-
not:指定仅在条件为假时执行命令 -
errorlevel number:指定仅当前一个程序返回的退出代码等于或大于 number 时条件为真 -
command:指定如果前面的条件满足则执行的命令 -
string1==string2:指定仅当 string1 和 string2 相同时条件为真 -
exist FileName:指定如果文件名存在则条件为真
示例
IF %errorlevel% NEQ 0 GOTO okay
IF EXIST filename. (
DEL filename.
) ELSE (
ECHO filename. missing.
)
调用其他批处理程序
使用 CALL 命令从一个批处理程序调用另一个批处理程序,而不停止父批处理程序。命令语法如下:
CALL [[Drive:][Path] FileName [BatchParameters]]
-
[Drive:][Path] FileName:指定要调用的批处理程序的位置和名称,FileName 参数必须具有 .bat 或 .cmd 扩展名 -
BatchParameters:指定批处理程序所需的任何命令行信息,包括批处理参数 (%0 到 %9) 或变量(例如 %option%)
示例
CALL child
CALL child %1 %2
PAUSE 命令暂停程序
使用 PAUSE 命令暂停批处理程序的处理,并显示提示用户按任意键继续的消息。命令语法如下:
PAUSE
当在批处理程序中暂停时,将显示“Press any key to continue …”消息。如果怀疑批处理程序因无限循环而“失控”,或改变主意不想让程序完成,可以按 Ctrl+C 停止程序,将显示“Terminate batch job (Y/N)?”消息。
REM 命令添加注释
REM 命令用于在批处理文件中包含注释。命令语法如下:
REM [comment]
输入 REM 后,可以指定任何字符串作为注释。这是记录批处理文件的良好编程实践。
SHIFT 命令改变批处理参数位置
SHIFT 命令用于改变批处理文件中批处理参数的位置。命令不需要任何参数。它通过将每个参数复制到前一个参数来改变批处理参数 %0 到 %9 的值。例如,将 %1 的值复制到 %0,%2 的值复制到 %1,依此类推。该命令对于编写对任意数量的参数执行相同操作的批处理文件很有用。
示例
:loop
TYPE %1 | MORE
SHIFT
IF %1 == GOTO end
GOTO loop
:end
使用环境变量
可以使用两种类型的环境变量(系统和本地)来定义脚本的行为。系统环境变量定义全局操作系统环境的行为,只有具有管理员权限的用户才能更改系统变量。本地或用户环境变量定义当前命令提示符实例中环境的行为,只要以相同的命令提示符登录到计算机,这些环境变量就可用。
显示当前日期和时间
@ECHO Today is %DATE% at %TIME%
SET 命令操作环境变量
SET 命令用于显示、创建(设置)或删除环境变量。也可以存储数字或文本值以供以后使用。变量名不区分大小写,但内容可以区分。变量也可以包含空格。命令语法如下:
SET [[/A [expression]] [/P [variable=]] string]
-
/A:将字符串设置为要计算的数值表达式 -
/P:将变量的值设置为一行输入 -
variable:指定要设置或修改的变量 -
string:指定要与指定变量关联的字符串
算术运算符
| 操作 | 运算符 |
|---|---|
| 乘法 | * |
| 除法 | / |
| 加法 | + |
| 减法 | - |
| 取模 | % |
示例
SET /A dice=%RANDOM% % 6 + 1
ECHO %dice%
等待用户输入
SET /P Choice=Enter your option number
实现菜单
@ECHO OFF
ECHO 1. Set a variable
ECHO 2. Clear a variable
ECHO 3. Show a variable’s contents
SET /P Choice=Enter your choice (1, 2, 3)
活动:创建交互式批处理文件
活动 9 - 17:Windows 7 中文件操作的交互式批处理文件创建
- 必要时,按照相应说明启动虚拟机。
- 点击“开始”,然后点击“命令提示符”。
- 在命令提示符中输入 EDIT 并按 Enter 打开 DOS Edit。
- 输入 @ECHO OFF 并按 Enter 关闭命令行显示。
- 输入 REM This BAT file lists folders and files 并按 Enter 记录程序。
- 输入 REM that match a typed parameter 并按 Enter 继续记录程序。
- 输入 ECHO You typed %1 并按 Enter 显示输入的参数。
- 输入 DIR /P /S %1 并按 Enter 显示文件夹或文件名。
- 按 Alt + F,然后按 A 键保存文件。
- 按 Alt + D,使用箭头键移动到 [-E-] 条目,然后按 Enter 切换到 E: 驱动器。
- 使用箭头键移动到 User01 条目,然后按 Enter 选择 User01 目录。
- 按 Alt + N,在文件名文本行中输入 activity1.cmd,然后按 Enter 输入文件名并保存文件。
- 按 Alt + F,然后按 X 键退出 DOS Edit。
- 输入 CD /D E:\User01 并按 Enter 更改目录。
- 在命令提示符中输入 activity1 并按 Enter 运行批处理程序,必要时按空格键。
- 验证文件名是否显示。
- 在命令提示符中输入 EDIT 并按 Enter 再次打开 DOS Edit。
- 按 Alt + F,然后按 O 键打开创建的文件。
- 按 Alt + F,使用箭头键移动到 activity1.cmd,必要时按空格键,然后按 Enter 选择文件名并打开文件。
- 编辑第一条注释为 REM This BAT file creates a folder。
- 编辑第二条注释为 REM and two files。
- 编辑下一条语句为 ECHO You typed %1%2 and %3。
- 删除 DIR /P /S %1 语句。
- 输入 MD %1 并按 Enter 创建子目录。
- 输入 CD %1 并按 Enter 切换到子目录。
- 输入 ECHO This is the first file . %2 并按 Enter 在子目录中创建文件。
- 输入 ECHO This is the second file . %3 并按 Enter 在子目录中创建另一个文件。
- 输入 DIR /P /S 并按 Enter 显示文件名。
- 按 Alt + F,然后按 S 键保存文件。
- 按 Alt + F,然后按 X 键退出 DOS Edit。
- 在命令提示符中输入 activity1 Work FileA FileB 并按 Enter,必要时按空格键。
- 在命令提示符中输入 exit 并按 Enter。
- 保持虚拟机登录状态以进行下一个活动。
活动 9 - 18:Windows 7 中文件创建和删除的交互式批处理文件创建
- 必要时,按照相应说明启动虚拟机。
- 点击“开始”,然后点击“命令提示符”。
- 在命令提示符中输入 EDIT 并按 Enter 打开 DOS Edit。
- 输入 @ECHO OFF 并按 Enter 关闭命令行显示。
- 输入 REM This BAT file creates a list of files 并按 Enter 记录程序。
- 输入 REM or removes a list of files 并按 Enter。
- 输入 ECHO You typed %1 并按 Enter 回显参数。
- 输入 IF [%1] == [Delete] GOTO delete 并按 Enter 测试 Delete 参数。
- 输入 IF [%1] == [Create] GOTO create 并按 Enter 测试 Create 参数。
- 输入 ECHO The correct syntax is activity2 Create or activity2 Delete 并按 Enter 发出错误消息。
- 输入 ECHO Create and Delete are case sensitive 并按 Enter 继续错误消息。
- 输入 ECHO Retry the command with the correct parameter 并按 Enter 完成错误消息。
- 输入 GOTO end 并按 Enter 将控制转移到程序末尾。
- 输入 :delete 并按 Enter 输入标签。
- 输入 FOR %%A IN (File1 File2 File3 File4 File5) DO DEL %%A 并按 Enter 删除先前创建的文件。
- 输入 GOTO end 并按 Enter 将控制转移到程序末尾。
- 输入 :create 并按 Enter 输入标签。
- 输入 FOR %%A IN (File1 File2 File3 File4 File5) DO ECHO This is the file . %%A 并按 Enter 创建文件。
- 输入 :end 并按 Enter 输入标签。
- 按 Alt + F,然后按 A 键保存文件。
- 按 Alt + D,使用箭头键移动到 [-E-] 条目,然后按 Enter 切换到 E: 驱动器。
通过以上内容,你可以掌握 Windows 7 中脚本文件的创建和批处理编程的基本方法,提高工作效率和自动化程度。
活动 9 - 18 后续步骤
- 使用箭头键移动到 User01 条目,然后按 Enter 选择 User01 目录。
- 按 Alt + N,在文件名文本行中输入 activity2.cmd,然后按 Enter 输入文件名并保存文件。
- 按 Alt + F,然后按 X 键退出 DOS Edit。
- 输入 CD /D E:\User01 并按 Enter 更改目录。
- 在命令提示符中输入 activity2 Create 并按 Enter 运行创建文件的批处理程序,必要时按空格键。
- 验证文件是否成功创建。
- 在命令提示符中输入 activity2 Delete 并按 Enter 运行删除文件的批处理程序,必要时按空格键。
- 验证文件是否成功删除。
- 在命令提示符中输入 exit 并按 Enter。
- 保持虚拟机登录状态以进行其他操作。
总结与注意事项
在 Windows 7 中进行脚本文件创建和批处理编程时,有以下要点需要注意:
-
问题解决流程
:遵循六步问题解决流程能帮助我们清晰地分析问题,规划脚本的实现步骤。
-
批处理命令
:不同的批处理命令有各自的功能和语法,如 ECHO 用于显示文本,FOR 用于重复执行命令,GOTO 用于分支跳转,IF 用于条件判断等。
-
环境变量
:合理使用系统和本地环境变量可以增强脚本的灵活性和可配置性。
-
活动实践
:通过实际的活动操作,能更好地掌握批处理编程的技巧和方法。
常见问题及解决方法
| 问题 | 解决方法 |
|---|---|
| 批处理程序中标签未找到 | 检查标签名称是否正确,确保标签以冒号开头且在批处理程序中存在。 |
| 命令回显影响输出显示 | 使用 ECHO off 关闭命令回显,或在命令前插入 @ 防止单行回显。 |
| 条件判断不生效 | 检查条件表达式的语法是否正确,注意字符串比较时是否区分大小写。 |
流程图示例
graph TD;
A[开始] --> B[启动虚拟机];
B --> C[打开命令提示符];
C --> D[打开 DOS Edit];
D --> E[编写批处理脚本];
E --> F[保存脚本文件];
F --> G[更改目录];
G --> H[运行批处理程序];
H --> I{执行结果是否正确};
I -- 是 --> J[结束];
I -- 否 --> K[检查错误并修改];
K --> E;
总结
通过本文的介绍,我们详细了解了 Windows 7 中脚本文件的创建和批处理编程的相关知识,包括脚本文件的基本概念、六步问题解决流程、各种批处理命令的使用、环境变量的操作以及通过实际活动进行实践等内容。掌握这些知识和技能可以帮助我们更高效地完成重复性任务,提高工作效率。同时,在编程过程中要注意遵循语法规则,遇到问题时能够根据错误信息进行排查和解决。希望这些内容对大家在 Windows 7 系统下进行脚本编程有所帮助。
进一步学习建议
- 深入研究批处理命令的高级用法,如嵌套循环、复杂的条件判断等。
- 学习如何结合其他工具和技术,如 PowerShell 等,进一步扩展脚本的功能。
- 参与相关的技术论坛和社区,与其他开发者交流经验和心得。
超级会员免费看
1148

被折叠的 条评论
为什么被折叠?



