批处理 文件操作(二)
前言
在旧博客中找到一篇文件操作的文档,整理了一下。
正文
md
md 是创建文件夹的意思。
但是也不是所有文件夹都可以创建。
比如说创建 md x#4,这种特殊字符的东西,你需要做的事md "x#4".要打上双引号。
然后你创建多个文件的时候可以这样:md xx yy这样就可以创建xx和yy两个文件了。
你还可以这样创建目录树:md a\b\c 这样就是a目录下的b目录,创建c目录。
ren
ren 是rename的简称。
ren a.txt b.txt
这样就可以转换了。
除了这样外,这时候有一些其他功能可以使用:
比如说:
ren a?.txt b.txt
这个?代表一个字符。
ren a*.txt b.txt
- 表示多个字符。
del
del命令的用法很简单,使用 "del 文件路径" 的格式就可以了。比如,想删除D盘根目录下的test.txt,使用del d:\test.txt即可。
但是,并不是所有的文件都可以只用del命令就可以搞定,比如具有隐藏属性、只读属性或者系统属性的文件,假如d:\test.txt具有隐藏属性,如果仅仅是 del d:\test.txt 的话,d:\test.txt会纹丝不动。如何删除它?这时候,就需要对del加上一些辅助参数了,隐藏属性是hidden,使用del /a:h,只读属性是read,使用del /a:r,系统属性是system,使用del /a:s,如果不知道文件是什么属性,那么,使用del /a即可——不过有一种情况是例外,当文件具有只读属性的时候,还得添加 del /a /f 参数,所以,如果要对不知道属性的文件进行强制删除,使用 del /a /f 语句是最保险的做法。在这里,/f 参数表示强制删除只读属性文件的意思,f取自force,也就是强制的意思。
删除文件是件十分危险的事情,稍有不慎,就可能删掉了重要的文件,所以,在执行删除操作的时候,需要小心谨慎。如果需要在删除之前进行确认的话,可以添加一个参数:/p。
当然,对于十分有把握的删除操作,并不需要逐一确认的,可以选择静默删除模式,这时候,需要使用参数:/q,也就是 quiet 的缩写形式
删除文件夹:rd
rd /s /q g:/test
第一个参数的作用是,如果这个文件夹不为空,那么也会删除。/q 是quiet的意思。就是说不会去询问你是否删除。
move
move 表示移动文件的意思。
但是:
move a.txt b.txt
这时候a文件命名为了b。实际上是先移动,然后重命名。
move 有一个重要的参数 -y;
copy
copy 和move 一样有一个-y的属性,表示copy过去直接覆盖而不是询问。
在批处理脚本中,move 默认带的是 /y 开关,不会出现重名提示而直接覆盖同名文件,和cmd窗口中的情形正好相反。
copy d:\test\test.txt d:\1.txt 这样的命令,也就是说,在指定目的路径的时候,直接指定文件名,那么,新的文件名就是源文件复制之后的名字。
copy同样有合并内容的功能。例如:copy d:\test.txt+d:\abc.txt d:\test\test.txt,那么,就把D盘根目录下的test.txt和abc.txt两个文件的内容合并为test.txt,并保存到d:\test目录下。
必须注意的是,copy只能复制文件,对于文件夹的复制,则需要另请高明,动用xcopy来复制。
如果你要查看copy的更多功能,请输入 copy /?
其他功能属性也一样。