`

Windows 命令行基础(下)

阅读更多
 
   

5. 批处理文件简介

  使用批处理文件(亦称批处理程序或脚本),可以简化日常或重复性任务。批处理文件是纯文本文件,它包含一条或多条命令,其文件扩展名为 .bat 或 .cmd 。在命令提示符下键入批处理文件的名称,Cmd.exe 就会按照该文件中各个命令出现的顺序来逐个运行它们。所以批处理文件的特点是:一次建立,多次运行,适合进行重复性任务。在 DOS 中只能使用 .bat 的批处理文件。

  可以在批处理文件中包含任何命令。某些命令,比如 for、goto 和 if 命令等,它们允许你对批处理文件中的命令作条件流程控制。例如,if 命令根据条件语句的结果来执行命令。还有些只能在批处理文件中执行的命令。

  有关批处理文件的详细信息,请参考以下命令的帮助页。

表5-1 命令 功能
rem 添加一段注释
echo 显示信息,或将命令回显打开或关上
if 执行批处理程序中的条件性处理
for 为一套文件中的每个文件运行一个指定的命令
goto 跳转到批处理程序中某个标明的行执行
pause 暂停批文件的处理并显示消息
call 从一个批处理程序调用另一个批处理程序,而不终止父批处理程序
pushd 保存当前目录,然后对其进行更改
popd 还原 pushd 保存的当前目录的上一个值
shift 更换批文件中可替换参数的位置
setlocal 开始批文件中环境更改的本地化
endlocal 结束批文件中环境更改的本地化
title 设置 cmd.exe 会话的窗口标题
start 启动另一个窗口来运行指定的程序或命令

6. 几个应用实例

6.1 批量改名

  今天的《xxxHoLic》漫画更新到了 158 话,我下载后,得到如下文件:(加粗为用户输入的内容)

C:\>d:(输入 D: 以切换到 D 盘,否则下一个 cd 命令无效)

D:\>cd D:\xxxHoLic\vol14\158

D:\xxxHoLic\vol14\158>dir /b
XXXholic158_001.jpg
XXXholic158_002-003.jpg
XXXholic158_004.JPG
XXXholic158_005.JPG
XXXholic158_006.jpg
XXXholic158_007.JPG
XXXholic158_008.jpg
XXXholic158_009.jpg
XXXholic158_010.JPG
XXXholic158_011.JPG
XXXholic158_012.jpg
XXXholic158_013.JPG
XXXholic158_014.JPG
XXXholic158_015.JPG
XXXholic158_016.jpg
XXXholic158_017.jpg
XXXholic158_018.JPG
XXXholic158_019.jpg
XXXholic158_020.JPG

  我想将它们改名为 01.jpg ~ 20.jpg 用命令该怎样做呢?这里只提供一种可能的办法,实际上还有很多种方法,大家可触类旁通。

D:\xxxHoLic\vol14\158>for %i in (01,04,05,06,07,08,09) do ren XXXholic158_0%i.jp
g %i.jpg(for 命令中,%i 变量遍历小括号中的内容)

D:\xxxHoLic\vol14\158>ren XXXholic158_001.jpg 01.jpg
……(命令回显会显示实际执行的命令,省略输出若干)
D:\xxxHoLic\vol14\158>ren XXXholic158_009.jpg 09.jpg

D:\xxxHoLic\vol14\158>for /L %i in (10,1,20) do ren XXXholic158_0%i.jpg %i.jpg

D:\xxxHoLic\vol14\158>ren XXXholic158_010.jpg 10.jpg
(省略输出若干)
D:\xxxHoLic\vol14\158>ren XXXholic158_020.jpg 20.jpg

D:\xxxHoLic\vol14\158>ren XXXholic158_002-003.jpg 02-03.jpg(最后手动改名)

D:\xxxHoLic\vol14\158>

  以上主要通过 for...in...do 结构及 /L 参数,使得本来要 19 次的改名操作只用两个 for 命令及一个 ren 就搞定。for 命令详细用法请参考其帮助页。

6.2 批量“粉碎”文件

  接着刚才的例子,如果我想用 4.2 节所述的方法“粉碎”当前文件夹下的所有 jpeg 文件,我该怎样做?

D:\xxxHoLic\vol14\158>for %i in (*.jpg) do copy nul %i /y

  这里使用 /y 来防止 copy 的覆盖前提示。

6.3 清理 Windows 临时文件夹 %tmp%

  “%tmp%”这个环境变量保存了 Windows 临时文件夹的位置,通常这个文件夹是 C:\Documents and Settings\用户名\Local Settings\Temp 。某些程序(典型如安装程序,解压缩软件)运行过程中产生的临时文件会存放于此,总之,是个堆放杂物的地方,其中文件一般可全部删除。在“我的电脑”的 “地址栏”(若找不到地址栏,“查看”->“工具栏”->“地址栏”)中输入“%tmp%”,然后回车,看看你的临时文件夹有多少东西。

  下面讨论清理。可能每隔一段时间就需要清理临时文件夹,因此我们采用批处理文件。以下为 CleanTmp.cmd 文件的内容。

第一种方案:全部删除

@echo off
rem 命令前加“@”会不让该命令显示出来,而“echo off”的作用是关闭整个
rem 脚本的命令回显。若不懂,请注释掉第一行(在最前面加“rem ”)再试。
rem CleanTmp.cmd : 清理 Windows 临时文件夹
rem Author : Henix<http://hi.baidu.com/shell32>
echo Cleaning...
rd /s /q %tmp%
md %tmp%
echo Done.
pause

也许你希望留下一些文件,比如 *.log ,那也可以用第二种方案:删除部分文件

rem CleanTmp.cmd : 清理 Windows 临时文件夹
rem Author : Henix<http://hi.baidu.com/shell32>
del %tmp%\*.tmp /q
del %tmp%\*.wmv /q
del %tmp%\*.xml /q
rem 也可以添加更多,你的临时文件夹中经常出现的,而你又不想要的文件
pause

  将以上内容保存为 CleanTmp.cmd ,放在桌面(或其他你方便的地方),以后你只需双击这个 CleanTmp.cmd 就可清理临时文件夹。

6.4 优化服务配置:svc2kxp.cmd

  如果说以上这些脚本只是我个人举的教学样例,只是些小打小闹的话,那下面这个德国人写的脚本会让你见识到什么是真正的脚本应用,以及真正的脚本编程。

  在“开始”->“运行”中输入“services.msc”,会显示你的计算机当前的服务配置。怎样配置这些服务以达到最优化,是网上很 多论坛讨论的话题。这里并不讨论怎样配置服务,因为有 svc2kxp.cmd 帮我们配置。该软件的实际使用效果我不清楚,只是推荐它来学习脚本编程。

  官方网站:http://www.ntsvcfg.de/ntsvcfg_eng.html(英文)

  看别人写的脚本也是一种有效的学习方法。这个脚本注释丰富,大量使用了 if...goto 、reg 、文件操作等,看完后定会让你受益匪浅(反正我是没法看完的啦)。

6.5 下载一系列图片:for + wget

  有时我们在网上看到一系列图片,想把它们都下载下来,怎么办?首先要取得图片的地址,只有当图片的地址有一定规律性时,才能使用此法下载:在图 片上点右键->“属性”,然后复制“地址”一栏的内容。假设要下载的图片地址很有规律,恰为 http://www.example.com/ 下的 1.jpg - 100.jpg 。

  网上有很多命令行小程序,可以增强命令行的功能。这里使用 GNU 的 GNU Wget ,该程序可通过 HTTP 、HTTPS 、FTP 协议下载文件。

  官方网站:http://www.gnu.org/software/wget/ 。Windows 版下载地址:http://www.christopherlewis.com/WGet/WGetFiles.htm

  一般下载最新的稳定(stable)版本,解压后进入 wget 的安装目录,输入:

D:\soft\wget>md E:\pic (建立目录用来存放下载的图片)

D:\soft\wget>for /L %i in (1,1,100) do wget -P E:\pic http://www.example.com/
%i.jpg
(注意,wget 中的参数以“-”开头,而不是“/”,而且严格区分大小写。这是 Unix 风格的
参数写法。)
(-P 指定文件的存放位置。wget 的其他功能请参考其帮助手册页)

7. 参考文献

  [1] Paul Love, Joe Merlino 等:《Unix 入门经典》,张楚雄、许文昭译,清华大学出版社,2006
[2] 张钟澍、杨佛章编著:《电脑打字与文书编辑(修订本)》,成都科技大学出版社,1993
[3] 命令行参考 A-Z :http://technet2.microsoft.com/WindowsServer/zh-CHS/Library/552ed70a-208d-48c4-8da8-2e27b530eac72052.mspx?mfr=true
[4] 妙用PRN文件,实现文档换机打印:http://blog.sina.com.cn/s/blog_46dac66f01000a8m.html
[5] PRN文件要如何打印到打印机?:http://www.people.com.cn/GB/it/53/305/20010109/374542.html
[6] PrnPrint :http://www.magma.ca/~russrite/PrnPrint/index.html

附录1:常用 DOS 命令一览

(一)内部命令

1. CD(全程 CHDIR ,显示当前目录的名称或将其更改)
格式:CD [路径名]
2. CLS(清除屏幕)
3. COPY(将至少一个文件复制到另一个位置)
格式:COPY [/V] [/A | /B] 文件1 [+ 文件2 [+ ...]] 目标文件
4. DATE(显示或设置日期)
5. DEL(或用 ERASE ,删除至少一个文件)
6. DIR(显示一个目录中的文件和子目录)
格式:DIR [盘符][路径][文件名] [/B] [/P] [/W]
7. MD(全称 MKDIR ,创建目录)
格式:MD [路径]
8. RD(全称 RMDIR ,删除目录)
格式:RD [路径]
说明:只能删除空目录
9. REN(全称 RENAME ,重命名文件)
格式:REN [盘符][路径]旧文件名 新文件名
说明:不能为目标文件指定新的驱动器或路径
10. TIME(显示或设置系统时间)
11. TYPE(显示文本文件的内容)
格式:TYPE [盘符][路径]文件名
12. VER(显示 DOS 版本)
13. VOL(显示磁盘卷标和序列号)
格式:VOL [盘符]

(二)外部命令

1. ATTRIB(显示或更改文件属性)
格式:ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] [[盘符][路径]文件名] [/S]
说明:+ :设置属性,- :清除属性,R :只读文件属性,A :存档文件属性,S :系统文件属性,H :隐藏文件属性。/S :处理当前文件夹及其子文件夹中的匹配文件。仅用 ATTRIB 会列出当前目录下全部文件及其属性。
2. CHKDSK(检查磁盘并显示状态报告)
格式:CHKDSK [盘符[[路径]文件名]]] [/F] [/V]
说明:不指明文件,则对整个盘进行操作,/F 为修复磁盘上的错误,/V 为显示磁盘上每个文件的完整路径和名称。
3. EDIT(EDIT 为一菜单式文本编辑软件)
4. FORMAT(格式化磁盘以供 DOS 使用)
格式:FORMAT 盘符 [/V:卷标] [/Q] [/S]
说明:高级格式化会清除全部文件,/V 指定卷标,/Q 快速格式化,/S 为格式化成 DOS 系统盘(相当于 FORMAT 后再 SYS)。
5. SYS(传输系统文件)
格式:SYS [盘符]
说明:制作可启动的 DOS 系统盘。
6. XCOPY(复制文件和目录树)
格式:XCOPY 源文件 [目标文件] [/P] [/S [/E]] [/V]
说明:/P 创建每个目标文件前提示,/S 复制目录和子目录,除了空的,/E 复制目录和子目录,包括空的,/V 验证每个新文件。

附录2:Windows 中的一些有用的命令

  下表列出了 Windows 中的一些有用的命令,使用方法请参考其帮助页。

1. 文件系统命令 命令 说明
assoc 显示或修改文件扩展名关联。如果在没有参数的情况下使用,则 assoc 将显示所有当前文件扩展名关联的列表。
attrib 显示、设置或删除指派给文件或目录的只读、存档、系统以及隐藏属性。如果在不含参数的情况下使用,则 attrib 命令会显示当前目录中所有文件的属性。
convert 将文件分配表 (FAT) 和 FAT32 卷转换为 NTFS 文件系统,而现有的文件和文件夹完好无损。被转换为 NTFS 文件系统的卷无法再转换回 FAT 或 FAT32。
defrag 定位并整理本地卷上的零碎启动文件、数据文件和文件夹。
diskpart 管理磁盘、分区或卷,可新建、删除等。
expand 展开一个或多个压缩文件(.cab 格式)。
fc 比较两个文件并显示它们之间的差异。
for 对一组文件中的每个文件运行指定的命令。
fsutil Fsutil 是一个命令行实用程序,可用于执行多种与文件分配表 (FAT) 和 NTFS 文件系统相关的任务,例如管理重分析点、管理稀疏文件或拆卸卷。由于 fsutil 的功能非常强大,因而只有具有 Windows XP 或 Windows Server 2003 的完整知识的高级用户才应使用它。此外,必须作为管理员或 Administrator 组的成员登录,才能使用 fsutil。
ftype 显示或者修改在文件名扩展关联中使用的文件类型。使用不带参数的 ftype 显示已定义打开命令字符串的文件类型。
move 将一个或多个文件从一个目录移动到指定的目录。
subst 将路径与驱动器号关联。如果使用时不带参数,subst 将显示有效的虚拟驱动器的名称。
tree 以图形的方式显示路径或驱动器中磁盘的目录结构。
2. 网络相关命令 命令 说明
arp 显 示和修改“地址解析协议 (ARP)”缓存中的项目。ARP 缓存中包含一个或多个表,它们用于存储 IP 地址及其经过解析的以太网或令牌环物理地址。计算机上安装的每一个以太网或令牌环网络适配器都有自己单独的表。如果在没有参数的情况下使用,则 arp 命令将显示帮助信息。
ftp 将文件传输到运行文件传输协议 (FTP) 服务器服务(如 Internet 信息服务)的计算机,或从这样的计算机传输文件。通过处理 ASCII 文本文件,可以交互的方式或以批处理模式使用 Ftp。
hostname 显示计算机全名中的主机名称部分。
ipconfig 显示所有当前的 TCP/IP 网络配置值、刷新动态主机配置协议 (DHCP) 和域名系统 (DNS) 设置。使用不带参数的 ipconfig 可以显示所有适配器的 IPv6 地址或 IPv4 地址、子网掩码和默认网关。
net 许 多服务使用的网络命令都以词 net 开头,这些 net 命令有:net [ accounts | computer | config | continue | file | group | help | helpmsg | localgroup | name | pause | print | send | session | share | start | statistics | stop | time | use | user | view ]
netstat 显示活动的 TCP 连接、计算机侦听的端口、以太网统计信息、IP 路由表、IPv4 统计信息(对于 IP、ICMP、TCP 和 UDP 协议)以及 IPv6 统计信息(对于 IPv6、ICMPv6、通过 IPv6 的 TCP 以及通过 IPv6 的 UDP 协议)。使用时如果不带参数,netstat 显示活动的 TCP 连接。
ping 通过发送 Internet 控制消息协议 (ICMP) 回响请求消息来验证与另一台 TCP/IP 计算机的 IP 级连接。对应的回响应答消息的接收情况将和往返过程的时间一起显示出来。Ping 是用于检测网络连接性、可到达性和名称解析的疑难问题的主要 TCP/IP 命令。如果不带参数,ping 将显示帮助。
telnet 通过 TELNET 协议登陆远程计算机。
tftp 向运行日常文件传输协议 (TFTP) 服务或守护程序的远程计算机(尤其是运行 UNIX 的计算机)传输或接收文件。如果使用时不带参数,tftp 将显示帮助。
tracert 通 过递增“存在时间 (TTL)”字段的值将“Internet 控制消息协议 (ICMP) 回显请求”或 ICMPv6 消息发送给目标可确定到达目标的路径。路径将以列表形式显示,其中包含源主机与目标主机之间路径中路由器的近侧路由器接口。近侧接口是距离路径中的发送主 机最近的路由器的接口。如果使用时不带参数,tracert 显示帮助。
3. 系统管理命令 命令 说明
at 计划在指定时间和日期在计算机上运行命令和程序。at 命令只能在“计划”服务运行时使用。如果在没有参数的情况下使用,则 at 命令将列出已计划的命令。
exit 退出当前批处理脚本或 Cmd.exe 程序(即命令解释程序)并返回到启动 Cmd.exe 的程序。
help 提供关于系统命令的联机信息(即非网络命令)。使用不带参数的 help 列举并简要描述每个系统命令。
reg 对注册表子项信息和注册表项值中的值执行添加、更改、导入、导出以及其他操作。
regsvr32 在注册表中作为命令组件注册 .dll 文件。
set 显示、设置或删除环境变量。如果没有任何参数,set 命令将显示当前环境设置。
taskkill 结束一个或多个任务或进程。可以根据进程 ID 或图像名来结束进程。
tasklist 显示本地或远程机器上当前运行的进程列表。

附录3:相关资源

分享到:
评论

相关推荐

    Windows命令行基础操作代码

    Windows 命令行基础操作代码 Windows 命令行是 Windows 操作系统中的一种命令行界面,用户可以通过键入命令来执行各种操作。在本文中,我们将介绍 Windows 命令行中的一些基础操作代码。 创建用户 在 Windows 中...

    Windows.命令行详解手册.rar

    2. **内置命令**:Windows命令行提供了许多内置命令,如`dir`(显示目录内容)、`cd`(切换目录)、`copy`和`move`(文件操作)、`del`(删除文件)、`ren`(重命名文件)等。手册会详细介绍这些命令的用法和示例。 ...

    Windows.命令行详解手册.zip

    1. **命令行基础**:介绍如何打开和关闭命令提示符窗口,以及基本的命令行操作,如目录切换(`cd`)、查看当前目录(`dir`)和打印帮助信息(`help`或`/?`)。 2. **文件和目录操作**:包括创建、删除、移动和复制...

    windows_命令行操作大全

    windows_命令行操作基础知识,很全面,适合初学者.

    1 Windows命令行教程

    ### Windows命令行教程知识点详解 #### 一、引言 在计算机操作中,命令行界面(Command Line Interface, CLI)提供了一种通过输入命令来进行交互的方式。对于Windows操作系统而言,掌握命令行工具不仅可以提高工作...

    windows命令行基础

    ### Windows命令行基础知识点 #### 1. 引言:为何使用命令行 - **历史背景**:在早期计算机时代,命令行接口(Command Line Interface, CLI)是与计算机交互的主要方式。随着图形用户界面(Graphical User Interface,...

    windows命令行手册.rar

    《Windows命令行手册》是了解和掌握Windows操作系统中命令行工具的重要参考资料,它包含了大量关于如何在命令提示符下执行任务的信息。这份手册通常由多个部分组成,包括基础概念、常用命令、高级技巧以及实例应用等...

    Windows命令行cmd手册

    Windows命令行,通常被称为CMD(Command Prompt),是微软操作系统中的一个基础工具,它允许用户通过文本界面执行各种系统管理任务和运行程序。CMD是“命令解释器”的简称,它的历史可以追溯到DOS时代,虽然在图形化...

    从Windows命令行快速操作注册表

    ### 从Windows命令行快速操作注册表 在Windows操作系统中,注册表(Registry)是存储系统设置、应用程序配置等重要信息的关键数据库。由于其敏感性和复杂性,通常建议通过图形界面工具如“注册表编辑器”(RegEdit...

    windows命令行代码大全

    #### 一、命令行基础介绍 在Windows系统中,命令行是一种非常实用且强大的工具,它允许用户通过输入特定的命令来执行各种操作,包括文件管理、网络诊断、系统配置等。本文将详细介绍一系列常用的Windows命令行代码...

    DOS命令大全 (windows dos 命令行)

    DOS(Disk Operating System)命令是早期Windows操作系统中用于管理和操作计算机系统的一种命令行工具。在现代Windows系统中,虽然图形用户界面(GUI)已成为主流,但DOS命令仍然被保留,供高级用户和系统管理员使用...

    Windows经典命令行Linux命令行

    本文将详细探讨Windows的经典命令行工具CMD(Command Prompt)和Linux下的Bash shell,以及它们所支持的一些常用命令。 Windows经典命令行,即CMD,是Windows操作系统中内置的文本界面应用程序,它允许用户通过键盘...

    windows 命令行工具

    2. **Windows命令行基础:** - **命令提示符(CMD)**:Windows内置的命令行解释器,可执行DOS命令,如`dir`用于查看目录,`copy`用于复制文件。 - **PowerShell**:更现代的命令行环境,提供了更多的系统管理和...

    批处理标准教程、批处理命令的典型应用、Windows7脚本编程和命令行工具指南

    "Windows命令行详解手册第2版"会深入探讨Windows命令行环境,包括命令行的启动、基本操作,以及更高级的特性如管道符(|)和重定向()。这部分内容对于提升命令行使用技能至关重要,因为熟悉命令行不仅可以提高...

    Windows 7 脚本编程和命令行工具指南

    1. **内置命令**:书中涵盖了大量Windows命令行中的内置命令,如DIR、COPY、DEL等,以及如何利用它们进行文件管理、系统诊断和网络通信。 2. **高级命令**:除了基础命令,还包括更复杂的工具,如DISKPART用于磁盘...

    cmder windows的好用命令行工具

    首先,Cmder的基础是ConEmu,一个高度可配置的终端模拟器,它允许用户设置字体、颜色、透明度,甚至可以自定义背景图片,提供了一种更加美观的命令行体验。不仅如此,Cmder内置了MSYS2,一个轻量级的类Unix环境,让...

    Windows 7脚本编程和命令行工具指南

    PDF文档 带书签 ...第三部分介绍Windows PowerShell的基础知识、编程和应用,掌握管理Windows工作站、服务器和应用程序的快捷方法。 本书内容丰富,实例众多,适合Windows高级用户、系统管理员、开发人员参考。

    windows系统中的命令行

    通过本文的学习,我们可以了解到Windows命令行不仅是系统管理员和网络安全专家的重要工具,也是每位Windows用户都应该掌握的基础技能。无论是日常的系统维护还是高级的脚本编写,命令行都能提供强大的支持。希望本文...

Global site tag (gtag.js) - Google Analytics