当前位置:   article > 正文

Bat(批处理)文件编写手册(一)_批处理编写

批处理编写


1.echo命令

显示此命令后面的字符(字符不需要加引号)

【扩展】

  • 其中,^不能显示;
  • ehco.表示换行,中间不能空格,同样,,:;"/]+\这些符号也是一样的效果;
  • 答复命令中的快捷回复,比如我们需要rd删除某个目录,回车后会提示(Y/N),需要手动确认,但我们也可以快捷回复,如 echo Y | rd /s E:\mybat
  • 向文件里写内容,echo hello word > E:\newfile.txt,注意有该文件则清空内容,重新写入新内容,没有则创建,写入内容,如果需要追加内容,可以使用,echo mybat >> E:\newfile.txt 两个>>表示追加写入,后续会讲>>>

echo offecho on

此语句后面所有运行的命令都将 不显示/显示 命令行本身,即 关闭/打开 echo回显功能。

2.@命令

此命令加在其它运行时需要不显示的命令行的最前面,即运行时不显示该行命令行(之影响当前行)。如:@echo off(常这样搭配使用,将不显示所有的运行命令,包括本身这行)

3.pause命令

在批处理文件中,加入此命令会暂停批处理文件的执行,并提示:请按任意键继续. . .

4.rem命令

注释作用,不执行该命令后面的内容。如:rem 这是一条注释

5.::命令

注释作用,区别在于,echo处于打开状态时,rem如果前面没有加上@,注释内容将会显示出来,而此命令,在不加@的情况下也是不显示注释的。如::: 这是一条注释

6.call命令

类似于函数调用,在一个批处理文件中,调用另一个批处理文件,如果不加上call的话,执行完调用的批处理文件后,将无法返回当前批处理文件,并继续执行当前批处理文件的后续命令。注意,该方法是调用,即运行在同一个cmd窗口之中。

7.cd命令
  • 在同一分区下切换:直接cd 路径
  • 在不同分区下切换:cd /d 路径

【扩展】

  • %cd%:显示当前的完整路径, 如:echo %cd%
8.dir命令

显示目录中的文件和子目录列表

【扩展】可能很多时候,我们需要找某个文件,直接dir 目录的话,一下子刷屏了,此时,我们可以使用dir /P [目录]:在每个信息屏幕后暂停;我们发现我们查看的时候有很多我们并不关心的数据,时间,创建者等信息,此时我们可以使用:dir /B [目录]了解更多相关命令可以自行查找。

9.attrib命令

显示或更改文件属性,文件属性分为R - 只读文件属性A - 存档文件属性S - 系统文件属性H - 隐藏文件属性。如:查看文件属性:attrib mybat.txt,更改文件属性:attrib +H mybat.txt(设置文件的属性为隐藏);清除文件属性:attrib -H mybat.txt(删除文件的隐藏属性)。

如需将某文件夹中的某类文件做属性处理,可以使用*号(匹配任意字符),如:attrib +H bat学习\*.bat(将 bat学习 文件夹中的所有bat文件设置为隐藏属性)注意,只是作用于当前文件夹中,不作用于其子目录下的bat文件;如需将某文件夹及其子目录下的所有某类文件做属性处理,可以通过/s,如:attrib -H bat学习\*.bat /s(将 bat学习 文件夹及其子目录下的所有bat文件设置为隐藏属性)。

10.del命令

删除命令,参数有:/P - 删除文件时会进行提示确认/S - 从所有子目录删除指定文件/Q - 删除时,不做确认,默认允许/A - 根据属性删除文件

如:删除 bat学习 文件夹中的所有只读的txt文件 del /ar bat学习\*.txt(注:/a[attrib参数]

11.copy命令

复制文件,只能复制文件,不能复制文件夹。如:copy C:\mybat.txt D:\(将C盘中的mybat.txt文件复制到D盘中);在复制时如需更改其文件名及格式,如:copy C:\mytxt.txt C:\mybat.bat(将mytxt.txt复制并更改为mybat.bat);

在当前文件中,如需将其子目录中的文件复制一份到当前文件中,如:copy .\子目录1(就是将子目录1中的所有文件,复制一份到当前目录下);如需将某个文件夹中的文件复制到另一个文件夹中,如:copy 目录1 目录2(注,这不是复制文件夹,第二,且两个文件夹都是存在的,第三,如果目录1下面还有子目录,将不会被复制,只会复制目录1中的文件)

合并文件,copy mytxt.txt + mytxt2.txt mytxt3.txt(将mytxt.txt的内容与mytxt2.txt的内容进行合并,并赋值在mytxt3.txt中);如果,在合并的时候,没有传入合并之后的文件名,那么合并之后的内容将会覆盖在传入的第一个文件中,如:copy mytxt.txt + mytxt2.txt(最后合并的文件内,将会覆盖mytxt.txt内容)。注意,在合并图片或者歌曲这样的二进制文件时,必须使用/b参数,如:copy /b mym1.mp3 + mym2.mp3 mym3.mp3,还有另一个参数是/a,即ASCII码,用于纯文本文件的合并。

12.xcopy命令

复制文件(夹),如xcopy /s 目录1 目录2(将目录1下的所有文件及子目录下的所有文件(夹[非空目录])复制到目录2中,注:/s参数不能省,是为了作用于其下面的所有子目录中,省去,跟copy的效果是一样的了)其它参数,/e参数,跟/s区别在于,/e会复制空的目录;/h参数,前面提到的参数,默认是不会复制系统文件隐藏文件的,而区别于/s参数,就是会复制系统文件跟隐藏文件,可以与/e搭配使用,如xcopy /e /h 目录1 目录2

【扩展】

copy命令xcopy命令,在使用的过程中,如果复制的目录下有同名的文件,将会提示是否覆盖,需要输入y,如果我们需要默认确认的话,可以在复制的命令最后加上/y,如:copy 目录1\mytxt.txt 目录2 /y即表示默认覆盖。

13.md命令

创建单个文件夹。如:md mybat(在当前文件夹中,创建一个mybat文件夹),可带路径,如果创建的文件夹名称中,带有空格等,需要用引号引起来,如:md "my bat"

创建多个目录,如果名称中有空格,不用引号引起来的话,就是同时创建多个文件夹,如:md my bat,执行后你会发现,创建一个my文件夹跟一个bat文件夹,同时创建多个文件夹时,用空格隔开。

创建多级目录,如:md 1a\2a\3a\4a\5a(将会创建一个1a文件夹,在1a文件夹中创建一个2a文件夹,在2a文件夹中…),一键搞定。

14.rd命令

删除一个目录。先说参数吧,/s,除目录本身外,还将删除指定目录下的所有子目录跟文件,简单来说就是我们平常理解的删除,把这个文件夹跟里面的文件删除;/q,就是在带/s进行文件删除时的确认,不带需要手动进行确认删除。

什么参数不带,如:rd mybat,只能删除空的文件夹,删除不为空的文件夹时,需要带上/s参数,如:rd /s mybat,我们会发现需要我们手动进行删除,那么可以再携带/q参数,如:rd /s /q "my bat",同样的,如果目录路径中,有空格或者特殊符号等,需要用引号引起来。同理,rd /s /q 目录1 目录2,可以一次性删除多个文件夹

15.ren命令

重命名文件。命令:ren [path]filename1 filename2filename1如果不传路径则为当前目录,filename2不需要携带路径,只要传入修改的名称就行,如:ren bat学习\mtbat mybat

也可以批量进行重命名,通过*?进行匹配重命名,如:ren mybat\*.txt *.bat(将mybat文件夹下的所有txt类型文件改为bat类型文件)

16.move命令

移动文件并重命名文件和目录。如:move mybat\1.txt myfile(把mybat文件夹下的1.txt移动到myfile文件夹中);move mybat\2.txt myfile\second.txt(将mybat文件夹下的2.txt移动到myfile文件夹下并重命名为second.txt);如:move mybat\3.txt myfile\second.txt(由于second.txt已经在myfile文件夹中了,如果执行此条命令辉提示我们是否需要覆盖,如果需要默认的话,可以加上/y参数)如:move /y mybat\3.txt myfile\second.txt

上面介绍在同一分区中,如果移动的文件名与目标文件目录中的同名,则会提示是否覆盖,注意了,如果在不同分区中,移动的文件名与目录文件目录中的同名,则会提示文件存在,不会做任何操作。

17.find命令

在文件中搜索字符串。如:find "abc" mybat\4.txt(在mybat文件夹下的4.txt文件中,搜索abc字符串)返回搜索到的行内容,如果有多条就返回多条的行内容。

参数有/i搜索时忽略大小写;/n搜索到了的话,前面会显示所在行号;/c仅显示包含字符串的行数;/v显示不包含搜索字符串的行,相当于反向搜索;

18.findstr命令

find命令差不多,参数有:/i对搜索词不区分大小写;/r将搜索词作为正则表达式使用;/s在当前目录以及所在子目录中搜索查找,如:findstr /s "self" *.txt(在当前目录及所有子目录下 的txt文件中搜索字符串self);/c一般用于对一个整体字符串的搜索(含有空格),如:findstr /c:"my bat" 4.txt(在4.txt文件中,查找my bat字符串)


新手小白,代码写得不好,如果有理解错误的,还望大牛在评论区指出来,非常感谢!

以上就是运用 Bat(批处理)文件编写手册(一) 的所有内容了,点赞收藏加关注是最大的支持哦!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/459461
推荐阅读
相关标签