巧用内部命令实现文件管理
2012-11-19如云
如云
文件夹结构复制
某公司上年度在服务器中形成一个部门员工工作资料目录,其结构是一个由各级部门和员工组成的多层文件夹。新年即将来临,公司需要建立同样的文件夹结构,但不需要其中有任何数据。这个任务该如何完成?
假设该部门2012年的工作目录为F盘的“2012工作总目录”,2013年的新目录准备命名为F盘的“2013工作总目录”。复制目录结构的方法如下:
在F盘的根目录中用记事本建立一个文件(如Make2013.TXT),在其中输入如下一条命令(图1):
XCOPY F:\2012工作总目录\*.* F:\2013工作总目录 /E /T
存盘之后,将文件的扩展名改为BAT,得到Make2013.BAT文件,双击该文件,在“2013工作总目录”目录中便自动生成了各级部门和员工的空文件夹。
说明:以上命令中的两个参数中,/E 参数表示复制所有子目录,包括空目录。/T 参数表示只复制子目录结构(即目录树),不复制文件。要复制空目录,必须用/T 参数和/E 参数联合使用才能发挥效力。这就是命令参数合理搭配的技巧所在。
将某类文件带结构一同复制
还是上面的这家公司,假设在一年之中,各部门员工文件夹下形成了许多种类的文件,而文件名中带有“汇报”字样的文件是某部门领导关心的文件,该领导需要一套这样的资料,并且要保留完整的部门文件夹结构。该如何拷贝出来呢?
依然假设该部门2012年的工作目录为F盘的“2012工作总目录”,领导要的新目录准备命名为F盘的“给张经理”。复制目录结构的方法如下:
在F盘的根目录中用记事本建立一个文件(如MakeZhang.TXT),在其中输入如下一条命令(图2):
XCOPY F:\2012工作总目录\*汇报*.* F:\给张经理 /S
存盘之后,将文件的扩展名改为BAT,得到MakeZhang.BAT文件,双击该文件,在“给张经理”目录中便自动生成了张经理需要的、包含各级部门但仅包含“汇报”字样的员工汇报文件。
说明:在以上命令行中仅用到一个参数/S ,它表示复制非空的目录和子目录。如果省略 /S,XCOPY将在一个目录中工作,不会包含各级子目录。其中的“*汇报*.*”是采用通配符来描述所有含有“汇报”字样的文件,不管“汇报”字样出现在文件名的什么位置,都符合要求。
删除各级文件夹下的隐含文件
我们经常在硬盘或移动硬盘中进行Word文档操作或者下载一些资料,在操作过程中Word可能会产生一些隐含的临时文件,而下载软件也可能会将一些种子文件以隐含文件的形式存储在磁盘当中。这些文件都要占有一定的磁盘空间,日积月累会侵蚀我们宝贵的空间资源。那么如何一次性将这些我们看不到但对我们来说没有用的文件清除掉呢?
假如我们存放Word文档的文件夹为D:\个人文档,只要用记事本在该目录下建立一个含有如下内容的批处理文件(图3),双击执行一下就可以了。
DEL D:\个人文档\*.* /AH /S/F/Q
命令行中的参数说明如下:
/F表示强制删除只读文件;/S表示从所有子目录删除指定文件;/Q表示以安静模式删除,不要求确认;/A表示根据属性选择要删除的文件,后面紧跟属性说明(R只读文件、S系统文件、H隐藏文件、A存档文件),这里因为要删除隐含文件,所以指定为H。/AH与/F联用,表示即使隐含文件具有只读属性,也一样删除。如果要删除具有系统属性的隐含文件,那么再加一个/AS就可以了。
按时间点更新目录中的文件
我们可以用内部命令按时间更新文件,也就是说,只将一个文件夹中某日期之后产生或修改过的文件备份到另一个文件夹,其他文件不做复制处理。比如,要用硬盘D:\Rawdata目录中2011年12月29日后更改的文件更新移动硬盘I:\Reports目录中的文件,则只需要在命令提示符下执行如下命令即可(图4):
xcopy D:\rawdata I:\reports /d:12-29-2011
要更新上例中\Reports中存在的所有文件而不考虑日期,将命令行改为如下即可:
xcopy D:\rawdata I:\reports /u
如果只想获得前述命令要复制的12-29-2011日期后更新的文件列表而不复制文件,命令行改为如下:
xcopy \rawdata \reports /d:12-29-2011 /l > xcopy.out
执行之后,文件Xcopy.out中列出了要复制的所有文件。
备份某盘中的系统和隐含文件
磁盘中含有系统和隐含属性的文件都非常重要,一般不允许我们随便删除或改动。但是,某些病毒或恶意程序往往会改变或删除它们,造成系统或程序“危机”。为了在危急关头能恢复其中的某些或某个文件,我们有必要将这些文件备份下来(比如备份到移动硬盘I:中的某目录HideBak中)。那么,如何实现快速备份呢?
假设我们要备份C盘中的所有系统和隐含属性的文件,用上面的方法通过记事本构建一个批处理程序COPYHIDE.BAT,具体内容如下(图5):
XCOPY C:\*.* /S /H I:\HideBak
命令行中的参数/H表示复制具有隐藏和系统文件属性的文件。在默认情况下,XCOPY命令是不复制隐藏或系统文件的,这里我们是用了该命令的一个特殊情况。
一次生成多个分区的文件清单
假如某员工办公室电脑的D、E、F硬盘分区中存有大量工作资料,该员工经常在家加班,常常需要查询办公室电脑中是否有某个文件名的文件,这时如果有一份办公室电脑D、E、F盘的资料清单是很必要的。那么,如何快速生成这样一份清单呢?
只要用上面的方法建立一个小批处理程序并双击执行,即可得到一份清单文件LIST.TXT。批处理文件内容如下(图6):
DIR D:\*.* /B/S E:\*.* /B/S F:\*.* /B/S >LIST.TXT
命令行中D:\*.* /B/S即E:\*.* /B/S和F:\*.* /B/S三组参数中间用空格隔开,最后一个>LIST.TXT表示将前面的显示列表的输出路径从屏幕显示改为输出到文件LIST.TXT。
这样,我们只要将这个列表文件LIST.TXT拷贝到家中的电脑上,用记事本结合F3功能键就能用关键词查询办公室电脑三个分区中的文件名称了。