bat学习笔记(持续更新)

基础命令

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

提示符,对用户即将进行的操作进行解释

print

打印数组,返回序号

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 扩充到一个驱动器号和路径

你可能感兴趣的:(windows,windows,10)