Windows 7脚本编程和命令行工具指南作 者: (美) Brian Knittel 著,李军 等译出版时间:2011丛编项: 华章专业开发者丛书内容简介 Windows7及其之前的Vista版本都带有脚本命令、批处理文件和命令行工具,这些工具可以帮助管理员更轻松地完成任务,大大提高工作效率。本书通过大量实例,深入浅出地讲解这些工具,为广大Windows用户揭开这些工具的神秘面纱。本书主要内容包括三大部分:第一部分介绍Windows ScriptHost工具,包括VBScript编程语言、对象的使用、编写和调试脚本等,提供了Windows很多脚本编程对象的详细参考。第二部分介绍用来编写批处理文件的Windows命令语言,包括命令行环境、MS-DOS模拟、通过管理工具来修改命令环境的方法,还给出Windows提供的20多种重要的命令行程序的指南。第三部分介绍WindowsPowerShell的基础知识、编程和应用,掌握管理Windows工作站、服务器和应用程序的快捷方法。本书内容丰富,实例众多,适合Windows高级用户、系统管理员、开发人员参考。目录译者序前言第一部分 用Windows Script Host进行脚本编程第1章 Windows脚本宿主(WSH)11.1 什么是Windows脚本11.1.1 “Script”部分11.1.2 “Windows”部分21.1.3 “Host”部分21.1.4 与编写批处理文件有何不同31.2 脚本语言31.2.1 VBScript41.2.2 JScript41.2.3 Perl41.2.4 Python51.2.5 Open Object REXX51.2.6 Ruby51.2.7 选择一种语言51.3 一个简单的脚本51.4 脚本文件的类型71.4.1 JSE和VBE:已编码脚本81.4.2 Windows脚本文件(WSF)81.4.3 Windows脚本组件101.4.4 WSH设置101.5 创建第一个脚本文件101.5.1 创建一个脚本文件夹并使其安全化101.5.2 创建脚本121.5.3 脚本编辑工具121.6 Windows如何运行脚本131.6.1 Wscript和Cscript131.6.2 运行脚本的方式141.6.3 给脚本传递信息151.6.4 保存脚本的结果161.6.5 Wscript和Cscript命令选项171.7 运行自己的脚本191.7.1 将脚本添加到路径191.7.2 用一个快捷方式图标来运行脚本201.7.3 制作一个脚本快捷方式201.7.4 从批处理文件运行脚本211.7.5 自动运行脚本211.8 安全问题211.9 调试脚本231.10 到哪里获得更多信息26第2章 VBScript教程272.1 VBScript简介272.1.1 变量282.1.2 常量282.1.3 命名常量292.1.4 运算符和表达式302.1.5 自动类型转换 322.2 流程控制322.2.1 If…Then语句332.2.2 Select Case语句352.2.3 Do While循环362.2.4 用Exit Do终止循环382.2.5 用For…Next语句计数392.2.6 使用For…Each处理集合和数组392.3 VBScript函数402.3.1 调用函数和子例程402.3.2 文档和语法412.3.3 字符串操作函数422.3.4 日期和时间函数452.4 与用户交互472.4.1 MsgBox()函数482.4.2 InputBox()函数492.4.3 用Wscript.Echo显示简单的文本信息512.5 高级VBScript话题522.5.1 错误处理522.5.2 过程:函数和子例程532.5.3 数组542.5.4 变量作用域562.6 如何进一步学习56第3章 对象573.1 对象简介573.1.1 类和实例583.1.2 容器和集合583.1.3 对象命名593.2 在VBScript中使用对象603.2.1 Automation和文档文件613.2.2 属性和方法之间的区别613.2.3 嵌套对象623.2.4 释放对象633.2.5 使用集合633.3 在JScript中使用对象643.3.1 区分大小写643.3.2 使用集合643.4 用ActivePerl使用对象653.4.1 在WSH中运行Perl脚本663.4.2 Perl对象接口663.4.3 使用集合673.5 用ActivePython使用对象683.6 使用WScript对象693.7 查找并使用不常见的对象72第4章 文件和注册表访问774.1 完成实际工作774.2 操作文件和文件夹774.2.1 Scripting.FileSystemObject784.2.2 操作文件和路径名824.2.3 Scripting.Drive对象864.2.4 Scripting.Folder对象884.2.5 Scripting.File对象934.3 读取和写入文件964.3.1 TextStream对象974.3.2 从文件读取文本994.3.3 把文本写入文件1004.3.4 使用Stdin和Stdout1044.3.5 读取二进制文件1064.4 读取和写入XML1104.4.1 一些XML基础知识1114.4.2 读取XML文件1174.4.3 创建XML或HTML文件1194.5 操作程序和快捷方式1214.5.1 WScript.Shell对象1224.5.2 运行程序1254.5.3 创建和修改快捷方式1304.6 操作环境1324.6.1 提取环境信息1334.6.2 管理环境设置1344.7 操作注册表1364.7.1 查看注册表键和值1374.7.2 在注册表中保存信息137第5章 网络和打印机对象1405.1 管理网络和打印机连接1405.2 获取网络用户信息1435.3 管理驱动器映射1455.3.1 使用EnumNetworkDrives列出驱动映射1455.3.2 添加驱动器映射1475.3.3 删除驱动映射1485.3.4 在脚本中设置映射1495.4 管理网络打印机连接1505.4.1 显示打印机信息1515.4.2 连接到网络打印机1525.4.3 重定向DOS会话打印机1535.4.4 删除打印机集合1545.4.5 设置默认打印机1555.5 从脚本打印156第6章 消息和传真对象1586.1 使用CDO从脚本发送Email1586.2 CDO对象模型1596.2.1 CDO.Message对象1616.2.2 使用Field1656.2.3 CDO.Message对象的Field1676.2.4 CDO BodyParts集合1686.2.5 CDO BodyPart对象1686.2.6 ADO Stream对象1716.2.7 CDO.Configuration对象1716.3 用CDO发送消息1756.3.1 构建消息1756.3.2 添加附件1786.3.3 包含图像的HTML消息1796.3.4 指定接收者和主题1806.3.5 指定发送服务器1806.3.6 发送消息1816.3.7 综合应用1826.4 从脚本发传真1866.4.1 使用脚本发送传真1896.4.2 获取关于传真的更多信息190第7章 WMI1927.1 WMI简介1927.1.1 WMI功能1937.1.2 命名空间1937.1.3 远程管理Windows1957.2 进行WMI连接1977.2.1 WMI对象层级1977.2.2 使用WbemScripting.SWbemLocator对象连接2007.2.3 使用别名连接2017.2.4 连接到本地计算机2027.2.5 安全性和验证2027.2.6 指定安全选项2057.3 WMI集合和查询2067.3.1 SWbemServices2077.3.2 WQL查询2087.3.3 SWbemObjectSet2097.3.4 SWbemObject2107.3.5 SWbemMethodSet和SWbemPropertySet2117.4 Scriptomatic2127.5 WMI示例2137.5.1 收集系统信息2147.5.2 管理打印机2157.5.3 监控Windows服务包和热补丁2157.5.4 管理服务和任务2167.6 获取更多信息218第8章 活动目录脚本编程接口2198.1 管理用户目录2198.1.1 ADSI的使用2198.1.2 使用ADSI和WSH的局限性2208.2 ADSI概念2208.2.1 多重继承2228.2.2 创建ADSI对象2238.2.3 目录安全性2258.2.4 确定容器和叶子之间的区别2268.3 针对WinNT:提供者的ADSI2288.3.1 IADs2298.3.2 IADsCollection和IADsContainer2318.3.3 操作ADSI集合2328.3.4 IADsComputer和IADsComputer-Operations2338.3.5 IADsDomain2358.3.6 IADsFileService和IADsFileService-Operations2378.3.7 IADsFileShare2398.3.8 IADsGroup2408.3.9 IADsMembers2418.3.10 IADsNamespaces2418.3.11 IADsPrintJob和IADsPrintJob-Operations2428.3.12 IADsPrintQueue和IADsPrintQueue-Operations2448.3.13 IADsService和IADsService-Operations2468.3.14 IADsSession2498.3.15 IADsUser2508.4 IIS和Exchange2518.5 管理活动目录2528.6 活动目录对象2548.6.1 RootDSE2548.6.2 IADsO and IADsOU2558.7 开发ADSI脚本2568.8 EzAD Scriptomatic2578.9 获取更多信息258第9章 为计算机和网络管理部署脚本2609.1 在现实世界中使用脚本2609.2 使用WSF文件2619.2.1 WSF文件格式引用2629.2.2 用WSF文件提供在线帮助2669.2.3 处理命令行参数2679.2.4 包含多个脚本2709.2.5 综合应用2719.3 在网络上部署脚本2749.4 使用IExpress创建简单的安装程序2749.4.1 创建IExpress安装脚本或批处理文件2779.4.2 处理用户账号控制2789.4.3 提供一个Uninstall选项2799.5 编写脚本来管理其他计算机2809.5.1 远程脚本编程2829.5.2 将脚本复制到多台计算机上2829.6 脚本安全性问题2849.6.1 脚本签名2859.6.2 脚本编码器2889.7 建立登录脚本2889.7.1 用户配置文件登录脚本2899.7.2 在Window 7和Vista上用于登录、退出和其他事件的脚本2909.7.3 组策略登录、退出、启动和关闭脚本2909.8 计划脚本以自动运行2919.8.1 编写无人值守脚本2929.8.2 给事件日志发送消息2939.8.3 使用Task Scheduler调度脚本296第二部分 命令行环境第10章 CMD命令行29910.1 命令提示符窗口29910.2 运行CMD30010.2.1 用管理员权限打开一个命令提示符30110.2.2 CMD选项30210.2.3 关闭命令扩展30310.3 命令行处理30310.3.1 停止失控程序30410.3.2 控制台程序输入和输出30410.3.3 使用控制台窗口30510.3.4 I/O重定向和管道30510.3.5 在命令提示符窗口复制和粘贴30810.3.6 命令编辑和历史列表30810.3.7 名称自动完成30910.3.8 打开目录名称自动完成31010.3.9 一行上的多条命令31110.3.10 用括号组合命令31110.3.11 参数、逗号和引号31210.3.12 转义特殊字符31210.4 配置CMD命令31210.4.1 AutoRun31210.4.2 环境变量替换31310.4.3 搜索路径31310.4.4 预定义环境变量和虚拟环境变量31510.4.5 设置默认环境变量31610.5 内建命令31710.5.1 扩展命令32710.5.2 使用dir命令列出文件32710.5.3 用set命令设置变量33010.5.4 使用if命令的条件处理33110.5.5 使用for命令扫描文件33210.6 获取更多信息335第11章 批处理文件33711.1 为何使用批处理文件33711.2 创建并使用批处理文件33711.3 批处理文件编程33911.4 在批处理文件中显示信息34011.5 参数替代34011.6 参数编辑34111.7 使用if的条件处理34311.7.1 基本的if命令34311.7.2 查看文件和文件夹34311.7.3 检查一个程序的成功34311.7.4 执行if之后的几条命令34411.7.5 扩展的测试34511.8 处理多个参数34611.9 使用环境变量34811.10 使用for命令处理多个项34911.10.1 在for循环中使用多条命令35011.10.2 延迟扩展35211.11 使用批处理文件子例程35311.12 提示要求输入35311.13 有用的批处理文件技术35411.13.1 处理命令行选项35411.13.2 管理网络映射35611.13.3 检查正确参数35711.13.4 保存日志文件357第12章 Windows上的MS-DOS程序35912.1 Windows上的MS-DOS程序35912.1.1 虚拟DOS机35912.1.2 MS-DOS和COMMAND.COM36112.2 配置MS-DOS环境36112.2.1 窗口和内存选项36212.2.2 CONFIG.NT36512.2.3 AUTOEXEC.NT36712.2.4 MS-DOS环境变量36712.3 MS-DOS和网络36712.4 从MS-DOS打印36812.4.1 打印重定向36812.4.2 打印屏幕36912.5 使用MS-DOS配置串行通信36912.6 针对DOS使用特殊用途设备36912.7 管理MS-DOS程序369第13章 Windows命令行工具37113.1 Windows命令行程序37113.2 必备的命令行37113.3 GUI快捷方式37213.4 通用的shell程序37413.4.1 findstr37413.4.2 more37713.4.3 tree37813.4.4 xcopy37813.5 文件管理工具38013.5.1 attrib38113.5.2 cacls38213.6 管理能力工具38513.6.1 driverquery38513.6.2 runas38513.6.3 tasklist38613.6.4 taskkill38813.6.5 sc38813.7 网络工具39013.7.1 ipconfig39013.7.2 net39213.7.3 netstat39913.7.4 nslookup40013.7.5 ping40213.7.6 tracert40313.8 获取更多工具404第三部分 Windows PowerShell第14章 Windows PowerShell简介40514.1 什么是Windows PowerShell40514.1.1 一个面向对象的命令Shell40514.1.2 基于.NET Framework40714.1.3 一个可扩展的环境40814.2 获取Windows PowerShell40814.3 PowerShell环境41014.4 PowerShell命令提示符41014.4.1 命令行编辑41114.4.2 复制和粘贴41214.4.3 暂停输出和停止一个失控程序41214.4.4 命令行语法41214.5 Cmdlet、对象和脚本41414.6 获取帮助41614.7 提示完整的命令41714.8 别名41714.8.1 如何获取别名列表41814.8.2 如何定义一个新的别名41814.9 导航目录和其他位置41814.10 PowerShell安全性41914.10.1 PowerShell脚本和用户账户控制41914.10.2 脚本执行策略42014.11 PowerShell配置文件421第15章 PowerShell编程42315.1 Windows PowerShell编程语言42315.2 Windows PowerShell语法42315.3 注释42415.4 变量和类型42415.4.1 字面值42515.4.2 对象方法和属性42615.4.3 对象构造器42715.4.4 字符串插值42715.4.5 特殊字符42815.4.6 Here-Strings42815.4.7 释放变量42815.4.8 预定义的变量42915.4.9 数组43015.4.10 常量43415.5 表达式43415.5.1 比较数组43515.5.2 字符串运算符43715.5.3 &(执行)运算符43915.5.4 运算符优先级43915.5.5 赋值运算符44015.5.6 语句值44115.5.7 强制转型44115.5.8 传引用44215.5.9 散列表44215.6 流程控制44415.6.1 if44415.6.2 while44515.6.3 do…while和do…until44515.6.4 for44515.6.5 foreach44615.6.6 switch44715.6.7 break44915.6.8 continue44915.6.9 程序块45015.7 异常处理45015.7.1 trap45015.7.2 try/catch/finally45115.7.3 throw45115.8 定义函数45215.8.1 函数参数45215.8.2 函数作用域45415.8.3 Dot-Source运算符45415.8.4 变量作用域45515.8.5 管道函数和过滤器45615.8.6 Splatting45715.9 使用.NET API45815.9.1 调用静态成员函数45815.9.2 操作字符串45915.9.3 操作日期和时间46015.9.4 转换值46215.9.5 数学函数462第16章 使用PowerShell46416.1 现实世界的PowerShell46416.2 命令行技术46516.2.1 生成对象46516.2.2 过滤46616.2.3 采取实际行动46816.3 格式化Cmdlet输出46816.4 操作文件和文件夹46916.4.1 查看一个文件是否存在47316.4.2 从文件读取文本47316.4.3 向文件写入文本47416.4.4 根据大小识别文件47416.5 创建有用的脚本47516.5.1 加注释47516.5.2 命令行处理57516.5.3 编写模块47616.5.4 把异常处理作为一种退出策略47716.6 使用散列表47816.7 PowerShell集成脚本环境47916.7.1 启动PowerShell ISE47916.7.2 配置ISE48016.7.3 创建和编辑脚本48016.7.4 在ISE中运行脚本48116.7.5 设置断点和单步执行48216.7.6 交互地检查和修改变量48216.7.7 有条件的断点48316.8 远程和后台PowerShell48316.9 如何继续学习483附录附录A VBScript参考485附录B CMD和批处理文件语言参考495附录C 命令行程序参考503 上一篇: 敏捷软件开发:原则、模式与实践(C#版)2008年版 下一篇: 精彩iPhone炫酷开发:七位一线高手的编程和设计范例