批处理删除特定序列的文件?

  文件批处理器是一款文件批量处理的应用软件,拥有批量删除、批量替换、批量增加文件名中的文字以及序列化批量命名文件名等功能,功能强大,可以随意的称,用户操作起来更加便捷。

  1.批量删除文件名中的文字;

  2.批量替换文件名中的文字;

  3.批量增加文件名中的文字;

  4.序列化批量命名文件名。

  只需按将所需要修改的文件上传到这款软件中,就可以帮助你自动的修改;

  操作简单,容易上手;

  是一款与众不同的文件名处理软件;

  可以随意的批量修改文件名称,非常的方便快捷;

  软件操作功能起来十分流畅,没有任何的卡顿现象;

  首先选择你要替换或者批量删除问题的目标文件;

  其次勾选删除或是替换的功能项;

  最后点击开始执行就可以了。

之前项目用到了MySQL、Redis、MongoDB和其他一些独立的jar包程序,测试的时候需要用脚本配置java环境变量,并运行各个程序。结果打开有四五个cmd黑框,领导又要求不显示cmd黑框。经过网上查阅资料,学习了一下批处理的一些知识,写下这篇文章整理一下。

批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理。批处理文件的扩展名为bat。目前比较常见的批处理包含两类:DOS批处理和PS批处理。PS批处理是基于强大的图片编辑软件Photoshop的,用来批量处理图片的脚本,而DOS批处理则是基于DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的脚本。

批处理是一种简化的脚本语言,它应用于DOS和Windows系统中,它是由DOS或者Windows系统内嵌的命令解释器(通常是或者CMD.EXE)解释运行。批处理的编程能力远不如C语言等编程语言,也十分不规范,大小写不敏感(命令符忽略大小写)。每个编写好的批处理文件都相当于一个DOS的外部命令,把它所在的目录放到DOS搜索路径(path)中,即可在任意位置运行。

批处理类似于Unix中的Shell脚本。批处理文件具有.bat或者.cmd的扩展名,其最简单的例子,是逐行书写在命令行中会用到的各种命令。更复杂的情况,需要使用if,for,goto等命令控制程序的运行过程,如同C,Basic等中高级语言一样。如果需要实现更复杂的应用,利用外部程序是必要的,这包括系统本身提供的外部命令和第三方提供的工具或者软件。

批处理文件,或称为批处理程序,是由一条条的DOS命令组成的普通文本文件,可以用记事本直接编辑或用DOS命令创建,也可以用DOS下的文本编辑器Edit.exe来编辑。在“命令提示”下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe运行该批处理程序。

一般情况下,每条命令占据一行。当然也可以将多条命令用特定符号(如:&、&&、|、||等)分隔后写入同一行中,还有的情况就是像if、for等较高级的命令则要占据几行甚至几十几百行的空间。系统在解释运行批处理程序时,首先扫描整个批处理程序,然后从第一行代码开始向下逐句执行所有的命令,直至程序结尾或遇见exit命令或出错意外退出。

cd 显示当前目录名或改变当前目录。

rd abc #删除当前目录里的 abc 子目录,要求为空目录

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

tree 以图形显示驱动器或路径的文件夹结构。

path 为可执行文件显示或设置一个搜索路径。

xcopy 复制文件和目录树。

type 显示文本文件的内容。

copy 将一份或多份文件复制到另一个位置。

copy test.txt + 复制文件到自己,实际上是修改了文件日期

del 删除一个或数个文件。

del d:test.txt #删除指定文件,不能是隐藏、系统、只读文件

del /q/a/f d:temp*.* #删除 d:temp 文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录

del /q/a/f/s d:temp*.* #删除 d:temp 及子文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录

attrib 显示或更改文件属性。

find 搜索字符串。

fc 比较两个文件或两个文件集并显示它们之间的不同

ping 进行网络连接测试、名称解析

net 网络命令集及用户管理

net share 共享资源名称$ /d 手工删除共享,注意$后有空格

msg 给用户发送消息

arp 显示、修改局域网的IP地址-物理地址映射列表

title 新标题 #可以看到cmd窗口的标题栏变了

ver #显示系统版本

label #显示卷标,同时提示输入新卷标

date #显示当前日期,并提示输入新日期,按"回车"略过输入

date/t #只显示当前日期,不提示输入新日期

time #显示当前时间,并提示输入新时间,按"回车"略过输入

time/t #只显示当前时间,不提示输入新时间

at 安排在特定日期和时间运行命令和程序

shutdown立即或定时关机或重启

sc 系统服务设置与控制

reg 注册表控制台工具

powercfg控制系统上的电源设置

对于以上列出的所有命令,在cmd中输入命令+/?即可查看该命令的帮助信息。如find /?

重定向1 >与>>,> 清除文件中原有的内容后再写入,>> 追加内容到文件末尾,而不会清除原有的内容,主要将本来显示在屏幕上的内容输出到指定文件中,指定文件如果不存在,则自动生成该文件。

copy c:test.txt f: >nul 拷贝文件,并且不显示"文件复制成功"的提示信息,但如果f盘不存在,还是会显示出错信息

重定向2 <,#从文件中获得输入信息,而不是从屏幕上,一般用于 date time label 等需要等待输入的命令。

这样就可以不等待输入直接修改当前日期

dir *.* /s/a | find /c ".exe" #管道命令表示先执行 dir 命令,对其输出的结果执行后面的 find 命令,该命令行结果:输出当前文件夹及所有子文件夹里的.exe文件的个数

&顺序执行多条命令,而不管命令是否执行成功

&&顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令

||顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令

2、传递参数给批处理文件

%[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。

变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用 %1 到 %9 顺序表示,%* 从第一个参数开始的所有参数

在实际应用中我们会把这条命令和重定向符号( 也称为管道符号,一般用 > >> ^ )结合来实现输入一些命令到特定格式的文件中。

@echo off #从本行开始关闭回显。一般批处理第一行都是这个

echo on #从下一行开始打开回显

echo. #输出一个”回车换行”,空白行

每个命令运行结束,可以用这个命令行格式查看返回码

默认值为0,一般命令执行出错会设 errorlevel 为1

表示不显示@后面的命令,@ 与 echo off 相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。

会暂停批处理的执行并在屏幕上显示Press any key to continue...的提示,等待用户按任意键后继续

注释命令,在C语言中相当与/*...*/,它并不会被执行,只是起一个注释的作用,便于别人阅读和自己日后修改。

语法:goto label (label是参数,指定所要转向的批处理程序中的行。)

指定跳转到标签行,找到标签行后,程序将处理从下一行开始的命令。label标签的名字可以随便起,但是最好是有意义的,字母前必须加个冒号“:”来表示这个字母是标签。

goto命令就是根据这个冒号来寻找下一步跳到到那里。经常与 if 配合使用,根据不同的条件来执行不同的命令组。

if 表示将判断是否符合规定的条件,从而决定执行不同的命令。有三种格式:

参数如果等于(not表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。(注意是两个等号)

如果有指定的文件,则条件成立,运行命令,否则运行下一句。

如果程序返回值等于指定的数字,则条件成立,运行命令,否则运行下一句。(返回值必须按照从大到小的顺序排列)

很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),称为错误码errorlevel或称返回码。

常见的返回码为0、1。通过if errorlevel命令可以判断程序的返回值,根据不同的返回值来决定执行不同的命令。

语法: if 条件 (成立时执行的命令) else (不成立时执行的命令)

如果是多个条件,建议适当使用括号把各条件包起来,以免出错。注:如果 else 的语句需要换行,if 执行的行尾需用“^”连接,并且 if 执行的动作需用(括起来),否则报错

调用外部程序,所有的 DOS命令 和 命令行程序 都可以由 start命令 来调用。

调用另一个批处理程序,并且不终止父批处理程序。如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令。

call 命令接受用作调用目标的标签。如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用。

注:可以调用自身(死循环、递归)

choice 使用此命令可以让用户输入一个字符(用于选择),从而根据用户的选择返回不同的 errorlevel,

注意:choice命令为DOS或者Windows系统提供的外部命令,不同版本的choice命令语法会稍有不同,请用choice /?查看用法。

choice 使用此命令可以让用户输入一个字符,从而运行不同的命令。

使用时应该加/c:参数,c:后应写提示可输入的字符,之间无空格。它的返回码为1234…

for 命令是一个比较复杂的命令,主要用于参数在指定的范围内循环执行命令。

%variable 指定一个单一字母可替换的参数。变量名称是区分大小写的,所以 %i 不同于 %I

(set) 指定一个或一组文件。可以使用通配符。

command 指定对每个文件执行的命令。

(2)、 如果命令扩展名被启用,下列额外的 FOR 命令格式会受到支持:

如果集里面包含通配符,则指定与目录名匹配,而不与文件名匹配。

检查以 [drive:]path 为根的目录树,指向每个目录中的FOR 语句。

如果在 /R 后没有指定目录,则使用当前目录。如果集仅为一个单点(.)字符,则枚举该目录树。

该集表示以增量形式从开始到结束的一个数字序列。

eol=c - 指一个行注释字符的结尾(就一个,如“;”)

skip=n - 指在文件开始时忽略的行数。

delims=xxx - 指分隔符集。这个替换了空格和跳格键的默认分隔符集。

tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代的 for 本身。这会导致额外变量名称的分配。

m-n格式为一个范围。通过 nth 符号指定 mth。

如果符号字符串中的最后一个字符星号,那么额外的变量将在最后一个符号解析之后分配并接受行的保留文本。

usebackq - 指定新语法已在下类情况中使用:

在作为命令执行一个后引号的字符串并且一个单引号字符为文字字符串命令并允许在 filenameset中使用双引号扩起文件名称。

1. 如下命令行会显示当前目录下所有以bat或者txt为扩展名的文件名。

a. 如下命令行会显示当前目录下所有包含有 e 或者 i 的目录名。

b. 如下命令行会显示 E盘test目录 下所有以bat或者txt为扩展名的文件名。

d. 以下两句,显示当前的年月日和时间

e. 把记事本中的内容每一行前面去掉8个字符

:: 读取记事本里的内容(使用 delims 是为了把一行显示全,否则会以空格为分隔符)

continue: 在 for 循环的最后一行写上一个标签,跳转到这位置即可

break: 在 for 循环的外面的下一句写上一个标签,跳转到这位置即可

set 设置变量,引用变量可在变量名前后加 % ,即 %变量名%

set #显示目前所有可用的变量,包括系统变量和自定义的变量

屏幕上显示”请输入”,并会将输入的字符串赋值给变量p

注意变量在 if 和 for 的复合语句里是一次性全部替换的。可以启用”延缓环境变量扩充”,用 ! 来引用变量,即 !变量名!

b 是指定背景色的十六进制数字; f 指定前景颜色(即字体颜色)。

如果没有给定任何参数,该命令会将颜色还原到 CMD.EXE 启动时的颜色。

如果两参数一样,视为无效输入。只有一个参数时,设置字体。

产生随机数(正整数0~)

结束程序。即时是被调用的程序,结束后也不会返回原程序

1) 分割字符串,以查看时间为例

%源字符串:~起始值,截取长度% (起始值从0开始;截取长度是可选的,如果省略逗号和截取长度,将会从起始值截取到结尾;

截取长度如果是负数,表示截取到倒数第几个。)

"%time:~0,5%" 显示"hh:mm"(即"11:04"),其中0表示从右向左移位操作的个数,5表示从左向右移位操作的个数

上面的字串分割格式,也可以用于其它地方,如目录路径:"%cd:~0,10%"

由于没有直接的字符串合并函数,只能用笨方法了。

没有现成的函数。如下程序利用 goto形成循环,不断将字符串截短1,并记录截短的次数,到字符串变成空时的次数即长度。

:: 判断str是不是空,如果不是则执行下边的语句

:: 算术运算,使num的值自增1,相当于num++或者++num语句

:: 截取字符串,每次截短1

:: 跳转到next1标签: 这里利用goto和标签,构成循环结构

:: 当以上循环结构执行完毕时,会执行下边的语句

5) 截取字符串时,需要传递参数

2) 修改/添加注册表内容

上句解析:“HKCU”是“HKEY_CURRENT_USER”的缩写,不用缩写用全称也可以;

c.如果注册表的名称有空格,或者数据用特殊符号时

这里用“/ve”来代替一般修改时的“/v 变量名”,即可修改默认值了

3) 删除注册表的内容

双引号里面的是注册表的目录,下面两句将删除这目录下的所有信息

双引号里面的是注册表的目录,下面一句将删除这目录下指定的某个信息

4) 注册表的常用位置

c.当前用户的环境变量:

5) 修改注册表之后,结束并重新加载explorer.exe进程,可刷新注册表,令其生效

0) 在没有开启变量延迟的情况下,某条命令行中的变量改变,必须到下一条命令才能体现。

另外例如for命令等,其后用一对圆括号闭合的所有语句也当作一行。

也可以对这种机制加以利用,如下的变量交换

1) 启动批处理文件中环境变量的本地化。本地化将持续到出现匹配的 endlocal 命令或者到达批处理文件结尾为止。

2) 为了能够感知环境变量的动态变化,批处理设计了变量延迟。简单来说,在读取了一条完整的语句之后,不立即对该行的变量赋值,而会在某个单条语句执行之前再进行赋值,也就是说“延迟”了对变量的赋值。

由于启动了变量延迟,所以批处理能够感知到动态变化,即不是先给该行变量赋值,而是在运行过程中给变量赋值,因此此时a的值就是5了

另外,启动变量延迟,“%”的变量还是不变

结果,打印从1到5;如果不变量延迟,一个变量也没有打印

我要回帖

更多关于 ps打开没有图像序列 的文章

 

随机推荐