云顶娱乐平台 14

云顶娱乐平台:Window批处理(.bat文件)

用过gothub或者码云的同学都知道,不包含任何文件的空文件夹上传提交时不被允许的。当然你可以在空文件下创建.keep文件(或.gitkeep文件),然后就可以上传了。

DOS


新大编程幼儿园学习第三课——Mac下常用命令行介绍

命令符号

批处理命令简介

云顶娱乐平台:Window批处理(.bat文件)。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 

实例一: 批量(循环)删除指定目录下所有空文件夹

下面的代码实现功能是批量删除F:盘下的所有空文件夹:

@echo off
for /f "delims=" %%a in ('dir /ad /b /s F:^|sort /r') do (
   rd "%%a">nul 2>nul &&echo 空目录"%%a"成功删除!
)
pause

可以复制以上代码粘贴到文本文档,然后修改文件名后缀.txt修改为.bat保存,鼠标右键点击打开即运行(或者以管理员身份运行)。我测试结果如下:

空目录"F:aaabbbccc"成功删除!
空目录"F:aaabbb"成功删除!
空目录"F:aaa"成功删除!
空目录"F:111"成功删除!
请按任意键继续. . .

 

 

新建文件:

type > %~dp0a.txt
//or
echo a 2>FileName

“2”表示错误输出的句柄,此例中没有错误输出,所以创建了没有内容的空文件。
其实>默认都是重定向了句柄1,即标准输出句柄。比如cd.>a.txt,其实就是cd.
1>a.txt。
同样,句柄3到9也可以使用在本例中,它们是未经定义的句柄,也不会有输出,如
echo a 3>a.txt
http://bits00.iteye.com/blog/1585651
http://www.pstips.net/working-with-files-and-directories.html

文件夹管理

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

  1.1,删除文件命令 del

若是想删除文件,输入del
盘符名:文件名,比如,我想删除一个在F盘的名为123.txt的文件,则输入
 del f:123.txt 
按回车就能删除该文件了。当然,该命令只能删除文件,不能删除文件夹。若要用该命令删除一个文件夹,会显示找不到文件123.txt。

清除 DNS 缓存

ipconfig /flushdns

批量新建文件夹: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命令或出错意外退出。 

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

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

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

 

set /p u=

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

批量重命名文件:ren.bat

文件内容:

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

云顶娱乐平台 3

ren.bat命令行界面

云顶娱乐平台 4

ren.bat运行效果

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

下面的代码可以删除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地址切换的时候,提交上传再也不用纠结一个一个排除空目录的苦恼啦。

 

打开指定文件目录:

目录中间可以有空格

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 删除文件夹,不提问

一、命令行的打开方式

1.
点击屏幕左下角Windows图标,选择运行,输入cmd回车(因Windows版本的不同,有所区别)

  1. 通过绝对路径:C:WINDOWSsystem32cmd.exe

云顶娱乐平台 5

绝对路径直接打开

  1. 快捷键打开Windows+R,而后输入cmd回车

4.
可在文件夹目录状态下,按shift+点击鼠标右键,会出现“在此处打开命令窗口”,会显示当前目录的命令行界面

云顶娱乐平台 6

当前目录的命令行界面打开

  1.2,删除文件夹命令 rm

若是想删除文件夹,输入rd
盘符名:文件夹名称,比如,我想删除一个在D盘的名为wo的文件夹,则输入
 rd d:wo
 这样就能删除文件夹了。当然这种删除方法必须要该文件夹是空文件夹,不然删除不了。

文件名:

所有文件都应该是全限定名,即:路径名+文件名,如果只有文件名没有路径名,默认为该shell所在目录。

前情链接:

一,DOS删除命令

%~dp0

此批处理文件所在文件目录

批量删除当前目录内的所有文件夹:del.bat

文件内容:

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

云顶娱乐平台 7

del.bat命令行界面

云顶娱乐平台 8

del.bat 运行效果

批处理可以在一些批量重复场景发挥作用,方便简化操作。

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

删除文件:

删除当前文件夹下以exe为后缀名的文件

del %~dp0*.exe

二、环境变量

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

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

rem

注释信息

三、基本命令

打开目录:explorer .   explorer ..  explorer dirname

新建文件:type nul>a.txt  或者   echo .>a.txt

删除文件:del a.txt

新建文件夹: md dirname(完整写法 mkdir dirname)

删除文件夹: rd dirname(完整写法 rmdir dirname)

rd /s /q ——直接删除文件夹,无论是否目录为空

查看文件: dir dirname  或者 tree /f

tree /f 命令可显示更加直观的层级结构

云顶娱乐平台 9

tree /f  显示效果  

完整代码

@echo off
set tile pepelu
c:
cd C:Program Files (x86)Microsoft Visual Studio 14.0VC
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

五、其他用法

powershell:——Windows8以上系统自带工具,相对高级的命令行工具

打开方式:Windows + R,然后输入powershell

使用了ps及kill两个命令,查看当前运行程序并根据ID号关闭指定程序,可以替代任务管理器关闭程序的功能。(当前使用的window7系统,未尝试)

拓展:

安装msys2等工具拓展命令行,可以直接使用Linux命令(

云顶娱乐平台 10

msys2 界面演示

与mac的homebrew包管理系统类似,windows有pacman包管理系统,可以直接在windows安装程序——此内容作为课后拓展讨论。

set u=pepelu

设置u的值为pepelu
输出时用:echo %u%
%为转义字符

四、批处理

[Tip]  内部命令:没有环境变量支持也可执行的命令,如cd
../等;外部命令:需环境变量

即bath file,通常以 .bat或者 .cmd为后缀,包含一系列Dos指令的文件

作用:

批处理文件在处理重复性工作时,可以极大的节省时间

云顶娱乐平台 11

演示三个批处理文件

@echo

控制台输出信息

新大编程幼儿园学习第二课——HTML、CSS和XML

%cd%

当前CMD默认目录

本课主题:Windows下常用命令行介绍

授课老师:张军祥

云顶娱乐平台 12

开场

== 课程目录 ==

· 命令行的打开方式

· 环境变量

· 基本命令

· 批处理

· 其他用法

%~d0

此批处理文件所在盘符

新大编程幼儿园学习第一课——内容和显示

choice /c 12 M:”enter your choice”

  1. /c:选项列表
  2. 12:1或者2两个选项
  3. M:”enter your choice”:提示信息
  4. if判断部分:先判断标签最大的选项

IF ERRORLEVEL 2 GOTO INITX86    
IF ERRORLEVEL 1 GOTO INIT
:INITX86
ECHO INIT x86
GOTO END
:INIT
ECHO INIT 64BIT
GOTO END
:END

查看环境变量:

命令:echo %path%

云顶娱乐平台 13

echo 查看

或者命令:set

云顶娱乐平台 14

set 查看

set title pepelu

设置cmd标题

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

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

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

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

(演示暂未成功)