图片 4

DOS批处理则是基于DOS命令的,如果只有文件名没有路径名

  1.3,文件夹和文件一起删除

若是想将文件夹和文件一起删除,输入rd /s /q
盘符名:\文件夹名,这样会将文件夹和它里面的文件一起删除。比如,我想删除一个在F盘的名为wo的文件夹和它里面的名为123.txt的文件,输入:
 rd /s /q
f:\wo
 即可。

注意:删除文件之前备份,不要将有用文件删除!

 

rem

注释信息

二、环境变量

环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。

当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好地运行进程。

文件夹管理

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

md 创建目录。 

rd 删除一个目录。 

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

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

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

xcopy 复制文件和目录树。 

文件管理 

type 显示文本文件的内容。 

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

del 删除一个或数个文件。 

move 移动文件并重命名文件和目录。(Windows XP Home Edition中没有) 

ren 重命名文件。 

replace 替换文件。 

attrib 显示或更改文件属性。 

find 搜索字符串。 

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

网络命令 

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

ftp 文件传输 

net 网络命令集及用户管理 

telnet 远程登陆 

ipconfig显示、修改TCP/IP设置 

msg 给用户发送消息 

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

系统管理 

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

shutdown立即或定时关机或重启 

tskill 结束进程 

taskkill结束进程(比tskill高级,但WinXPHome版中无该命令) 

tasklist显示进程列表(Windows XP Home Edition中没有) 

sc 系统服务设置与控制 

reg 注册表控制台工具 

powercfg控制系统上的电源设置

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

Windows Batch 常用命令

1 echo 和 @ 

回显命令 

@ #关闭单行回显 

echo off #从下一行开始关闭回显 

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

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

echo #显示当前是 echo off 状态还是 echo on 状态 

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

#(同echo, echo; echo+ echo[ echo] echo/ echo)

2 errorlevel 

echo %errorlevel% 

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

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

3 dir 

显示文件夹内容 

dir #显示当前目录中的文件和子目录 

dir /a #显示当前目录中的文件和子目录,包括隐藏文件和系统文件 

dir c: /a:d #显示 C 盘当前目录中的目录 

dir c: /a:-d #显示 C 盘根目录中的文件 

dir c: /b/p #/b只显示文件名,/p分页显示 

dir *.exe /s #显示当前目录和子目录里所有的.exe文件

4 cd 

切换目录 

cd #进入根目录 

cd #显示当前目录 

cd /d d:sdk #可以同时更改盘符和目录

5 md 

创建目录 

md d:abc #如果 d:a 不存在,将会自动创建中级目录 

如果命令扩展名被停用,则需要键入 mkdir abc。

6 rd 

删除目录 

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

rd /s/q d:temp #删除 d:temp 文件夹及其子文件夹和文件,/q安静模式

7 del 

删除文件 

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

del /q/a/f d:temp*.* 

删除 d:temp
文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录 

del /q/a/f/s d:temp*.* 

删除 d:temp
及子文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录

8 ren 

重命名命令 

ren d:temp tmp #支持对文件夹的重命名

9 cls 

清屏

10 type 

显示文件内容 

type c:boot.ini #显示指定文件的内容,程序文件一般会显示乱码 

type *.txt #显示当前目录里所有.txt文件的内容

11 copy 

拷贝文件 

copy c:test.txt d:test.bak 

复制 c:test.txt 文件到 d: ,并重命名为 test.bak 

copy con test.txt 

从屏幕上等待输入,按 Ctrl+Z 结束输入,输入内容存为test.txt文件 

con代表屏幕,prn代表打印机,nul代表空设备 

copy 1.txt + 2.txt 3.txt 

合并 1.txt 和 2.txt 的内容,保存为 3.txt 文件 

如果不指定 3.txt ,则保存到 1.txt 

copy test.txt + 

复制文件到自己,实际上是修改了文件日期

12 title 

设置cmd窗口的标题 

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

13 ver 

显示系统版本

14 label 和 vol 

设置卷标 

vol #显示卷标 

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

label c:system #设置C盘的卷标为 system

15 pause 

暂停命令

16 rem 和 :: 

注释命令 

注释行不执行操作

17 date 和 time 

日期和时间 

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

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

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

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

18 goto 和 : 

跳转命令 

:label #行首为:表示该行是标签行,标签行不执行操作 

goto label #跳转到指定的标签那一行

19 find (外部命令) 

查找命令 

find “abc” c:test.txt 

在 c:test.txt 文件里查找含 abc 字符串的行 

如果找不到,将设 errorlevel 返回码为1 

find /i “abc” c:test.txt 

查找含 abc 的行,忽略大小写 

find /c “abc” c:test.txt 

显示含 abc 的行的行数

20 more (外部命令) 

逐屏显示 

more c:test.txt #逐屏显示 c:test.txt 的文件内容

21 tree 

显示目录结构 

tree d: #显示D盘的文件目录结构

22 & 

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

23 && 

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

find “ok” c:test.txt && echo 成功 

如果找到了”ok”字样,就显示”成功”,找不到就不显示

24 || 

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

find “ok” c:test.txt || echo 不成功 

如果找不到”ok”字样,就显示”不成功”,找到了就不显示

25 | 

管道命令 

dir . /s/a | find /c “.exe” 

管道命令表示先执行 dir 命令,对其输出的结果执行后面的 find 命令 

该命令行结果:输出当前文件夹及所有子文件夹里的.exe文件的个数 

type c:test.txt|more 

这个和 more c:test.txt 的效果是一样的

26 > 和 >> 

输出重定向命令

27 < 

从文件中获得输入信息,而不是从屏幕上 

一般用于 date time label 等需要等待输入的命令 

@echo off 

echo 2005-05-01>temp.txt 

date

@echo off
forfiles /p “d:\test” /s /m *.* /d -7 /c “cmd /c del @path”
dir /ad/b/s d:\test\ |sort /r >d:\kill.txt
For /f “tokens=*” %%i in (d:\kill.txt) DO rd “%%i”
del d:\kill.txt

实例二:批量删除多个磁盘的空文件夹

下面的代码可以删除c  d e f 中所有的空文件夹:

@echo off
for %%i in (c d e f) do (
   if exist %%i:\ (
      for /f "delims=" %%a in ('dir /ad /b /s "%%i:\"^|sort /r') do (
         rd "%%a"
      )
   )
)
pause

注意,以上命令会批量删除c d e
f盘下所有的空目录,时间可能会长一点,请耐心等待。

 

好了,有了这个批处理程序,以后做整个项目的SVN或git地址切换的时候,提交上传再也不用纠结一个一个排除空目录的苦恼啦。

 

完整代码

@echo off
set tile pepelu
c:
cd C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC
rem add choice
echo CHOICE SYSTEM BIT:
ECHO 1.64BIT
ECHO 2.32BIT
choice /c 12 /M:"enter your choice:"
IF ERRORLEVEL 2 GOTO INITX86
IF ERRORLEVEL 1 GOTO INIT
:INITX86
ECHO INIT x86
CALL vcvarsall x86
GOTO END
:INIT
ECHO INIT 64BIT
CALL vcvarsall
GOTO END
:END
%~d0
cd %~dp0
cls
echo input file name...
set /p fileName=
echo switch file type...
ECHO 1.C++
ECHO 2.C
CHOICE /C 12 /M:"ENTER YOUR CHOICE"
IF ERRORLEVEL 2 GOTO C
IF ERRORLEVEL 1 GOTO CPLUS
:C
ECHO THIS IS JUST FOR C
SET FILETYPE=.c
GOTO END
:CPLUS
ECHO THIS IS JUST FOR C++
SET FILETYPE=.cpp
GOTO END
:END
REM set /p fileType=
rem add choice
cl /EHsc %fileName%%FILETYPE%
%fileName%
pause

设置环境变量(以便系统知道如何找到程序)

  1. set path=%path%;[程序所在的位置]

注意:set path =
命令会重写整个path所以要带上原来的path并以“;”隔开,并且此命令只对当前窗口有效,关闭当前窗口后,下次仍无法执行。

2.
使用control命令调用控制面板->系统和安全->系统->高级系统设置

(演示暂未成功)

命令符号

批处理命令简介

echo

rem

pause

call

start

goto

set

http://xstarcd.github.io/wiki/windows/windows\_cmd\_summary\_commands.html 

批处理符号简介 

回显屏蔽 @ 

重定向1 >与>> 

重定向2 < 

管道符号 | 

转义符 ^ 

逻辑命令符包括:&、&&、||

http://xstarcd.github.io/wiki/windows/windows\_cmd\_summary\_symbols.html 

一,DOS删除命令

set /p u=

保存从控制台输入的信息到u中

批量新建文件夹:md.bat

文件内容:

@echo off

echo 本脚本用于批量创建文件夹

echo 请根据提示输入。可以按ctrl+C退出。

set /p val=请输入您要监理的文件夹数:

set /a varshu=%val%-1

for /l %%i in (1,1,%val%) do md %%i

echo 文件夹创建完成

pause

图片 1

md.bat命令行界面

图片 2

md.bat 运行效果

前言简介

批处理文件(batch file)包含一系列
DOS命令,通常用于自动执行重复性任务。用户只需双击批处理文件便可执行任务,而无需重复输入相同指令。编写批处理文件非常简单,但难点在于确保一切按顺序执行。编写严谨的批处理文件可以极大程度地节省时间,在应对重复性工作时尤其有效。在Windows中善用批处理可以简化很多重复工作 

批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理。批处理文件的扩展名为bat。
DOS批处理则是基于DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的脚本。 

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

批处理文件,或称为批处理程序,是由一条条的DOS命令组成的普通文本文件,可以用记事本直接编辑或用DOS命令创建,也可以用DOS下的文本编辑器Edit.exe来编辑。在“命令提示”下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe运行该批处理程序。一般情况下,每条命令占据一行;当然也可以将多条命令用特定符号(如:&、&&、|、||等)分隔后写入同一行中;还有的情况就是像if、for等较高级的命令则要占据几行甚至几十几百行的空间。 

系统在解释运行批处理程序时,首先扫描整个批处理程序,然后从第一行代码开始向下逐句执行所有的命令,直至程序结尾或遇见exit命令或出错意外退出。 

先删过期文件,再删所有的空目录
如果操作系统是 Windows Server 2003
那就好办了,因为它有一个forfiles命令能够查找满足指定条件的文件,下面是这个命令的用法。
forfiles /p <目标目录名> /d <天数> /c <执行的命令>
看看列出的三个参数都有什么用处:
/p 指定了要在哪个目录里查找文件,默认是当前工作目录。
/d 指定一个日期或天数,用于比较文件的最后修改日期是否符合条件。
/c 对每个找到的文件执行的命令。
例1.要把在C盘根目录下最后修改日期大于或等于2007年7月1日的文件复制到D盘根目录下:
forfiles /p “c:\” /d “2007-7-1” /c “cmd /c copy @path d:\”
例2.删除在C盘backup目录下最后修改日期在10天前的文件:
forfiles /p “c:\backup” /d -10 /c “cmd /c echo deleting @file … &&
del /f @path”
先看删除文件的代码
forfiles /p 包含要删除文件的完整路径(如:F:\Logfiles) /m *.log -d -7
/c “cmd /c del /f @path”
解释一下相关参数及命令
/p : 指定开始搜索文件的位置,如果不指定则默认为当前目录。
/m :
文件查找所使用的通配符如代码中的”*.log”则为所有日志文件,当然也可以指定诸如”manmee_*.log”这样以manmee开头的所有日志文件。如果不指定此参数则默认为”*.*”。
/d [{+|-}][{|}] : 指定想选择文件的最后修改时间,上文中用了 “/d -7”
表示所有以当天为基础,7天以前的文件。当然这里还可以指定具体时间,例如:”/d
-08/18/2009″这样所有早于2009年8月18日的文件。注意指定的时间必须是”MM/DD/YYYY”的格式。
/c 对所有文件以此执行指定的命令,命令体须在双引号(“)内,默认是”cmd /c
echo @file”。上文中用到的是”cmd /c del /f
@path”删除指定文件。(这里的@file 和 @path 为变量,下文中将解释。)
下面说一下上文中用到的参数:
@PATH : 表示文件的完整的路径。
@File : 表示文件名称。
其他参数的详细介绍点击这里。
接下来我们看看删除文件夹的操作,如果你看了上面的介绍,相信这命令你一看就能看懂。
forfiles /p 包含文件夹的路径(如:F:\) /m 文件夹名称(如:LogFiles) -d 0
/c “cmd /c if @ISDIR == true rd /s/q @path”
注意这里的”包含文件夹的路径”不能包含要删除的文件夹,如以上代码所表示的就是,在F盘中查找名为LogFiles的文件或文件夹(不能指定查找文件夹,不过在删除时我们做了判断)。
还有就是这里出现了一个新的参数”@ISDIR”他用于判断当前文件类型是否是”文件夹类型”,如果是则为true否则为false。
相信到这大家就明白了,最后再将代码保存为批处理文件,然后加入计划任务定期执行即可。
看了上面的例子,觉得在 Windows Server 2003 下面要删除老文件很简单吧。
但如果操作系统是 Windows 2000/XP
就比较麻烦,因为它们没有forfiles命令,只能靠自己写批处理来实现了。
下面是我写的批处理文件内容:

但是如果空文件夹比较多,并且我们确实不需要这些空文件了,那本文就学习一种命令行删除所有空文件夹的方法。并封装成.bat批处理程序。通过鼠标右键运行即可。

打开指定文件目录:

目录中间可以有空格

explorer DirectoryName

DirectoryName : 要打开的文件夹路径名

地址:
https://github.com/amorypepelu/Pepelu

del F:_desktop.ini /f /s /q /a
(F代表你要操作的盘符,如果是C盘就把F改成C)
强制删除F盘下所有目录内(包括X盘本身)的_desktop.ini文件并且不提示是否删除。
/f 表示强制删除文件
/s表示子目录都要删除该文件
/q表示无声,不提示
/a根据属性选择要删除的文件

R 只读文件 S 系统文件
H 隐藏文件 A 存档文件

  • 表示“否”的前缀

例:
删除F盘下及其子目录下的所有指定文件
del F:/*.pdb /f /s /q /a (删除F盘下的所有后缀名为pdb的文件)

rd 删除文件夹(非空)
rd /s fileName 删除文件夹
rd /s /q fileName 删除文件夹,不提问

批量重命名文件:ren.bat

文件内容:

for /f “tokens=*” %%i in (‘dir /a:d /b’) do ren “%%i” “小电影%%i”

图片 3

ren.bat命令行界面

图片 4

ren.bat运行效果

forfiles /m *.bkf /d -28 /c “cmd /c del @file /f”

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章