简单,但容易被忽略的事实(CMD/CD)

目录跳转:cd
  当我们需要处理不同路径下的文件的时候,很可能需要切换目录,这个时候,可以考虑使用目录跳转命令cd

  例如,我们打开命令行窗口的时候,一般是这样操作的:在桌面左下角找到“开始”菜单,打开“运行”,输入“cmd”,回车。这个时候,命令行窗口默认的当前目录位于当前用户所在的路径下,比如:C:/Documents and Settings/JM,如下图所示。



 
默认目录
2008-11-12 21:19
  一般而言,这个目录下并没有我们想要处理的文件,我们很可能需要跳转到其他目录,比如说:C盘根目录,这个时候,我们就需要使用cd来实现目录的跳转了:cd c:/。


跳转到C盘
2008-11-12 21:19
  cd的全称是Change Directory,直译为改变文件夹,也就是跳转目录、切换路径的意思。它后面可以接驱动器符号、完整路径和相对路径。从它的全称可以得知,它不能操控文件,而只能作用于驱动器或文件夹。例如,我们使用 cd c:/boot.ini 这个命令来跳转(boot.ini是文件而非文件夹),就会出现“目录名无效”的错误,如下图所示。

不能跳转到文件
2008-11-12 21:19
  如果要跳转到当前目录的根目录下的话,可以使用一条简单的命令:cd/。如下图所示。


跳转到根目录下
2008-11-12 21:19
  继续跳转,cd c:/windows/temp,跳转到临时目录下。

  此时,如果想回到上一层目录windows,可以使用这条命令:cd..。如下图所示。


 
跳转到上一层
2008-11-12 21:19
  想想看,如果执行 cd. 会发生什么情况?

  结果,目录没有发生跳转,原地不动。如下图所示。利用这个原理,可以用 cd.>test.txt 来构造0字节的文本文件。详细情况,请参考这篇文章:本人常用的批处理实用技巧 之第2点。


 
跳转到当前目录
2008-11-12 21:19

  原来,cmd中,.、..和/表示相对路径,.是当前目录,..是上一层目录,而/表示根目录。

  来看一个比较诡异的现象:


何时使用强制跳转参数?



2008-11-12 21:19
  从当前目录下跳转到不同分区路径d:/的时候,cd d:/没有成功,当前目录没有发生改变;当添加了一个参数 /d 之后,命令成功地执行了。原来,要跳转到不同分区的时候,需要添加强制跳转参数 /d 。但是,如果进入的是当前目录的子目录,则可以不使用 /d 参数。 这一点是很容易被大家忽略的,希望能引起足够的重视。

  再来看一个更加诡异的现象:

 
驱动器冒号后添加反斜杠与否的差别
2008-11-12 21:19
  原来,当输入的是当前驱动器号+冒号的时候,将显示当前目录的完整路径;当输入的是当前驱动器号+冒号+反斜杠的时候,将跳转到当前路径的根目录下。

  
CD 的另一个非常有价值的用途是:显示当前的完整路径,一般用通过 %cd% 加以引用。如下图所示。此时,CD 作 Current Directory 解释,即“当前文件夹”。


显示当前路径
2008-11-12 21:26
  高级话题:看看下面这幅图反映了什么问题?



以树形格式罗列文件

tree ,在英语中的基本含义是“树”,在cmd中,tree命令的功能是以树形格式罗列文件。

  当你向别人展示你自己所做光盘的内容的时候,或者是罗列你硬盘上某个目录下的资料的时候,tree命令显得相当方便,并且能让你展示的内容层次分明,井井有条。啥也不说了,上图,顺便温习一下cd命令


tree
命令演示
2008-11-12 22:12

  当然,你可能并不满足于只给别人抓张图,你可能还想把这些信息导入到文件中去,加工一番再发出去,那么,请使用这条命令:tree>list.txt,这样,所有的信息都保存到list.txt文件中去了。

  更多的命令,请在cmd窗口中用 tree /? 查询(其实就两个参数)。

  很可能只是一条简单的命令,只是一眨眼的工夫,就解决了你的大问题,这就是cmd的简洁,这就是cmd的力量!


内容重定向符号:>和>>
  当我们在cmd窗口中查询某条命令的帮助信息的时候,帮助信息是显示在命令行窗口中的,命令行窗口关闭后,这些帮助信息就看不到了,如果下次还想看,又得在命令行窗口中输入查询命令,比较繁琐。

  有没有办法把显示在命令行窗口中的帮助信息保存下来呢?

  答案是肯定的,并且有不止一种答案。

  稍微繁琐一点的办法就是复制命令行窗口中的信息,然后粘贴到文本中保存起来。这个操作比较繁琐的:在命令行窗口点击右键,然后选择“标记”,用鼠标拉出复制范围,然后敲回车,最后,粘贴到文本中去。

  高效的办法就是:使用重定向符号,把原本输出到cmd窗口中的信息重定向到文本文件中去。

  重定向符号有两个:>和>>。它们的作用都是改变各种提示信息的输出方向,把提示信息输出到指定的地方去——各种提示信息默认是输出到屏幕上去的。例如:tree /?>help.txt,这条命令语句就把 tree 命令的帮助信息重定向到了help.txt文件中,help>nul 就把 help 命令的提示信息重定向到了空设备中去(nul表示空设备)。

  
想看看cmd中都有哪些基本命令吗?在cmd窗口中输入 help 就可以看到了;如果想把这些基本命令信息保存下来,请使用 help>d:/list.txt ,然后,到D盘根目录下找到list.txt文件打开即可。

  >和>>虽然都起到重定向提示信息的作用,但是,它们的作用稍有差别。单个的>表示以覆盖方式重定向提示信息,也就是说如果目的地原来有内容,将把原来的内容清除掉,用新内容填充;>>表示以追加的方式重定向提示信息,也就是说,如果目的地原来有内容,原有的内容将保持不变,在原有内容之后追加新内容。例如:假设d:/test.txt中的内容是:I Love batch。那么,在cmd窗口中,分别使用如下两条语句:echo me,too>d:/test.txt和echo me,too>>d:/test.txt,将会发现,使用第一条语句之后,test.txt中只有一行内容:me,too,而使用第二条语句之后,test.txt中将有两行内容,分别是I Love batch和me,too。



for 语句从入门到精通
  批处理是一门简单的脚本语言,虽然不能独当一面,但是,若作为工作中的辅助工具,绝对会让大家有随用随写、称心如意的畅快感。

  和其他语言相比,批处理语言有其先天性的优势:

  1、系统自带,无需另行安装;
  2、命令少,语句简洁,上手非常快;
  3、编写出来的脚本小巧玲珑,随写随用;

  但是,因为它以命令行方式工作,操作多有不便,在图形界面大行其道的windows世界里,多多少少会让大众望而却步;就算是对命令行有好感的新手,面对微软有如天书的帮助文件,很多人也会败下阵来,因此,论坛里很多会员也发出了编写系统的批处理教程的呼声。

  编写系统的批处理新手教程,一直是论坛管理层讨论的热点问题,但是,各位管理人员大多都有工作在身,而系统的教程涉及的面是如此之广,面对如此浩大的工程,仅凭一两个人的力量,是难以做好的,因此,本人退而求其次,此次发布的教程,以专题的形式编写,日后人手渐多之后,再考虑组织人力编写全面的教程。

  之所以选择最难的for,一是觉得for最为强大,是大多数人最希望掌握的;二是若写其他命令教程,如果没有for的基础,展开来讲解会无从下手;三是for也是批处理中最复杂最难掌握的语句,把它攻克了,批处理的学习将会一片坦途。

  这次的for语句系列教程,打算按照for语句的5种句式逐一展开,在讲解 for /f 的时候,会穿插讲解批处理中一个最为关键、也是新手最容易犯错的概念:变量延迟,大纲如下:
引用:

一 前言
二 for语句的基本用法
三 for /f (含变量延迟)
四 for /r
五 for /d
六 for /l
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值