基础命令
pause
执行完后暂停,显示“请按任意键继续. . .”,按任意键继续。
例:
pause
=====
C:\bat>pause
请按任意键继续. . .
rem(:: )
注释。不会在运行的时候显示出来。
例:
::使用rem或者双冒号注释
pause
=====
C:\bat>pause
请按任意键继续. . .
echo
显示命令后面的字符串,可以多个。
例:
echo yigeqiaodaimadetuzi
pause
=====
C:\bat>echo yigeqiaodaimadetuzi
yigeqiaodaimadetuzi
C:\bat>pause
请按任意键继续. . .
echo off
不显示后面的命令(不包括本行),但显示结果。
例:
echo off
echo buxianshi
pause
=====
C:\bat>echo off
buxianshi
请按任意键继续. . .
type
显示文件内容。
例:
@echo off
type b.txt
pause
::b.txt的内容为
::hello, world!
=====
hello, world!请按任意键继续. . .
@
不显示这一行命令,但显示结果。
例:
@echo off
echo buxianshi
pause
=====
buxianshi
请按任意键继续. . .
call
调用其他的bat文件。
例:
::a.bat内容如下
call b.bat
pause
::b.bat内容如下
::echo yige
=====
C:\bat>call b.bat
C:\bat>echo yige
yige
C:\bat>pause
请按任意键继续. . .
命令参数
%0 是命令本身,%1是第一个参数,最多到%9
例:
::b.bat中内容为
@echo off
type %1
pause
运行
.\b b.txt
此时%0 为 type,%1为 b.txt。显示txt内容。
批处理命令
if
if “%1” == “1” type %2
if [变量] == [条件] [命令]
变量和条件都要用""引起来。
例:
@echo off
if "%1" == "1" type %2
pause
===
PS C:\bat> .\b 1 b.txt
hello, world!请按任意键继续. . .
if not “%1” == “1” type %2
if not [变量] == [条件] [命令]
变量和条件都要用""引起来。
例:
@echo off
if "%1" == "1" type %2
pause
===
PS C:\bat> .\b 2 b.txt
hello, world!请按任意键继续. . .
多个条件
if "%%~zf" leq "100000" (
echo %%f
echo %%~zf
)
===
IMG_20191002_112739.png
115372
goto
跳转到指定标记的语句。
使用:label来标记语句。
例:
@echo off
goto shentianyongmei
:cangjinkong
echo wo ai cangjin kong
:shentianyongmei
echo wo ai shentian yongmei
pause
===
wo ai shentian yongmei
请按任意键继续. . .
for
对每个文件执行特定命令。
for [变量] in (集合满足的条件) do [对满足条件的变量执行的命令]
[变量]只能用一个字母表示,比如%%i, 而不能是%%iii.
例:
@echo off
for %%c in (*.bat) do type %%c
pause
===
::a.bat的内容
call b.bat
pause
::b.bat的内容
@echo off
for %%c in (*.bat) do type %%c
pause
请按任意键继续. . .
可以使用变量扩展来显示变量的不同性质,如文件的大小。
for %%v in (*.png) do (
echo %%~zv
)
choice
该工具允许用户从选择列表选择一个项目并返回所选项目的索引(变量名为%errorlevel%)。
@echo off
choice /c ync /m "y yes, n no, c cancel"
if %errorlevel%==1 echo yes
if %errorlevel%==2 echo no
if %errorlevel%==3 echo cancel
pause
===
y yes, n no, c cancel [Y,N,C]?
:按y
"yes"
errorlevel
接受上一个命令的错误等级。choice返回123,即选项列表索引;
if %errorlevel%==1 echo yes
等价于
if errorlevel 1 echo yes
exist
判断文件存在。
if exist b.bat echo "b.bat exist."
===
"b.bat exist."
format
磁盘格式化,我就不作死试验了。
copy
复制的文件中不能有子目录,不能重命名。
能合并两个文件。
@ echo off
copy a.bat+b.bat d:\
pause
===
a.bat
b.bat
已复制 1 个文件。
请按任意键继续. . .
xcopy
复制的文件中能有子目录,不能重命名。
不能合并两个文件。
xcopy c:\bat\a.bat d:\
===
C:\bat\a.bat
复制了 1 个文件
sucess
请按任意键继续. . .
dir
显示当前目录所有文件详细信息。
可以使用通配符匹配特定类型文件。
dir *.bat
===
目录: C:\bat
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2021/9/12 23:30 19 a.bat
-a---- 2021/9/13 1:12 43 b.bat
diskcomp
只用于软盘
diskcopy
只用于软盘
set
赋值
@echo off
set var=100
echo %var%
pause
===
100
请按任意键继续. . .
cmd
打开cmd并执行代码
start cmd /k “cd/d E:\工作目录\2017工作目录\NewUnityProject1 &&scene.exe -batchmode &&taskkill /f /t /im cmd.exe”
shift
更改批处理文件中可替换参数的位置.
shift /0
echo %1
===
::.\b 1 2 3
2 3
find
同下。
findstr
找到文件中字符串所在的行并打印出来
findstr hello b.txt
===
hello, world!
>
清空目标文件并将内容重定向到目标文件中。
echo /? > b.txt
===
:: b.txt中内容如下
显示消息,或者启用或关闭命令回显。
ECHO [ON | OFF]
ECHO [message]
若要显示当前回显设置,请键入不带参数的 ECHO。
>>
追加内容到文件末尾。
echo /? > b.txt
===
:: b.txt中内容如下
显示消息,或者启用或关闭命令回显。
ECHO [ON | OFF]
ECHO [message]
若要显示当前回显设置,请键入不带参数的 ECHO。
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]]
/V 显示所有未包含指定字符串的行。
/C 仅显示包含字符串的行数。
/N 显示行号。
/I 搜索字符串时忽略大小写。
/OFF[LINE] 不要跳过具有脱机属性集的文件。
"string" 指定要搜索的文本字符串。
[drive:][path]filename
指定要搜索的文件。
如果没有指定路径,FIND 将搜索在提示符处键入
的文本或者由另一命令产生的文本。
^
类似于转义符,将<、>和&的原本含义去掉,只是普通字符。
,
新的分隔符,代替“ ”(空格)
;
命令相同的不同目标分离。
|
将前一个命令的结果输出到后面一条命令。
||
顺序执行多条命令,前面一条成功则不执行下一条。
&
顺序执行多条命令,不论是否成功。
&&
顺序执行多条命令,前面一条出错则不执行下一条。
eol
行注释字符的结尾,只有一个。
skip
跳过的行数。
delims
分隔符集,替换空格和tab键,指定新的分隔符。
md
创建一个文件夹。
md test
md "test"
md "C:\Users\xxx\test"
===
以上三种方式都可以
cd
切换工作区。
cd /d c:\user\xxx
cd /d g:/temp/photo/
cd /d "D:/temp/"
===
必须使用/来添加扩展选项,在不同卷标之间来回切换必须使用/d,
\和/来引导文件目录都可以,最后一个/\有没有都可以。
否则会提示“文件名、目录名或卷标语法不正确。”
卷标大小写都可以
文件路径没有空格可以不加""
cd \user
===
同一目录下使用cd \user 即可回到父目录。
rd
删除文件夹,remove directory。
pushd
设定批处理所在的目录为工作目录。
popd
删除用pushd创建的文件夹。
start
启动应用。默认以命令行启动,若要以和用户双击同样的效果启动,需要加""
start \max "" "C:\Program Files\Google\Chrome\Application\chrome.exe"
===
可以看到打开了chrome
title
给cmd窗口取一个标题。
color
设置控制台的颜色。背景颜色+字体颜色
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 A = 淡绿色
3 = 湖蓝色 B = 淡浅绿色
4 = 红色 C = 淡红色
5 = 紫色 D = 淡紫色
6 = 黄色 E = 淡黄色
7 = 白色 F = 亮白色
cls
清屏。
ipconfig
查看ip地址。
ren
重命名
ren old.txt new.txt
net
net user username password
/add
/del
net share
net start/stop
net use
regedit
del
删除文件
reg
taskkill
关闭进程,可以通过进程名称、id等关闭
ping
访问一个网址。
vol
显示当前磁盘名称和序列号
convert
tracert
也被称为Windows路由跟踪实用程序,在命令提示符(cmd)中使用tracert命令可以用于确定IP数据包访问目标时所选择的路径。
move
移动文件(夹)或者重命名
fc
file compare 找到两个文件不同的地方并打印
at
指定特定时间执行的命令。
telnet
链接并登录一网址
telnet 192.168.0.100
open
打开网址、文件夹、文件等。
ftp
ftp -s 打开ftp命令文件。
route
路由器相关操作
arp
扫描ip地址段
mem
attrib
显示或者更改文件属性。
date
显示日期
time
显示时间
prompt
提示符,对用户即将进行的操作进行解释
打印数组,返回序号
2ver
winver
检查windows 版本
replace
替换字符串
tree
显示目录结构。
more
逐屏显示文件内容。
doskey
设置别名,类似于alias
taskmgr
chkdsk
检查硬盘状态。
tlntadmn
cacls
修改文件访问权限。
netsh
netsh(Network Shell)是一个windows系统本身提供的功能强大的网络配置命令行工具,可用来修改windows的ip,网关,dns,防火墙等信息.
iisreset
重启iis
pwd
查看当前路径
put
上传单个文件
get
下载单个文件
mput
上传多个文件
mget
下载多个文件
cdup
进入父目录。
rmdir
删除文件夹,非空会报错。
powercfg
/LIST、/L 列出所有电源方案。
/QUERY、/Q 显示电源方案的内容。
/CHANGE、/X 修改当前电源方案中的设置值。
/CHANGENAME GUID new_name 修改电源方案的名称和描述。
/DUPLICATESCHEME 复制电源方案。
/DELETE, /D 删除电源方案。
/DELETESETTING 删除电源设置。
/SETACTIVE, /S 使系统上的电源方案处于活动状态。
/GETACTIVESCHEME 检索当前活动的电源方案。
/SETACVALUEINDEX 如果系统使用交流电源供电,则设置与电源设置相关联的值。
/SETDCVALUEINDEX 如果系统使用直流电源供电,则设置与电源设置相关联的值。
/IMPORT 从文件中导入所有电源设置。
/EXPORT 将电源方案导出到文件。
/ALIASES 显示所有别名及其相应的 GUID。
/GETSECURITYDESCRIPTO 获取与指定的电源设置、电源方案或操作相关联的安全描述符。
/SETSECURITYDESCRIPTOR 设置与电源设置、电源方案或操作相关联的安全描述符。
/HIBERNATE、/H 启用或禁用休眠功能。
/AVAILABLESLEEPSTATES、/A 报告系统上可用的睡眠状态。
/DEVICEQUERY 返回符合指定条件的设备列表。
/DEVICEENABLEWAKE 使设备从睡眠状态唤醒系统。
/DEVICEDISABLEWAKE 禁止设备从任何睡眠状态唤醒系统。
/LASTWAKE 报告有关从上次睡眠转换中唤醒系统的信息。
/WAKETIMERS 枚举活动的唤醒计时器。
/REQUESTS 枚举应用程序和驱动程序的电源请求。
/REQUESTSOVERRIDE 为特定进程、服务或驱动程序设置电源请求替代。
/ENERGY 分析系统中常见的能量效率和电池使用时间问题。
/BATTERYREPORT 生成电池使用情况的报告。
/SLEEPSTUDY 生成系统电源转换的诊断报告。
/SRUMUTIL 从系统资源使用状况监视器(SRUM)转储能量估算数据。
/SYSTEMSLEEPDIAGNOSTICS 生成系统睡眠转换的诊断报告。
/SYSTEMPOWERREPORT 生成系统电源转换的诊断报告。
/POWERTHROTTLING 为应用程序控制电源节流。
macdef
改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录
lcd
切换路径
case
比较运算
EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于
变量类型
字符串
操作
截取
set str=abcdefghijklmnopqrstuvwxyz
echo %str% 原始字符串
echo %str:~0,3% 前三个字符
echo %str:~-3% 最后三个字符
echo %str:~0,-3%第一个到倒数第四个字符
echo %str:~3,5%从第四个开始的后面五个字符
合并
set s1=aabbcc
set s2=ddeeff
echo %s1%%s2%
字符串变数字
set i=1
set /a i+=1
===
2
如果没有/a,结果是i+1
集合
(1,2,3)
文件
(*.jpg)
for %%L in (*.jpg) do (
echo %%L
)
===
IMG_20190928_102353.png
IMG_20191002_112739.png
IMG_20191106_163142.png
img_tupian.png
可以对%%L使用拓展命令,
~i - 删除任何引号("),扩充 %i
%~fi - 将 %i 扩充到一个完全合格的路径名
%~di - 仅将 %i 扩充到一个驱动器号
%~pi - 仅将 %i 扩充到一个路径
%~ni - 仅将 %i 扩充到一个文件名
%~xi - 仅将 %i 扩充到一个文件扩展名
%~si - 扩充的路径只含有短名
%~ai - 将 %i 扩充到文件的文件属性
%~ti - 将 %i 扩充到文件的日期/时间
%~zi - 将 %i 扩充到文件的大小
%~$PATH:i - 查找列在路径环境变量的目录,并将 %i 扩充
可以多个组合,例如
%~dpi - 仅将 %i 扩充到一个驱动器号和路径