一些批处理命令

一些批处理命令,原作者不详,整理备忘。

 

@echo off rem 从本行开始关闭回显

echo. rem 输出一个空白行,echo, echo; echo+ echo[ echo] echo/具有同等效果

 

%errorlevel% rem 查看命令执行结果,默认为0,一般执行错误为1

 

dir /a:-d /b /s . rem 显示当前目录下所有,包括子目录里的文件

 

type boot.ini rem 显示boot.ini文件内容

 

copy con input.txt rem 复制屏幕输入到input.txt文件,按ctrl-z结束输入。con代表屏幕,prn代表打印机,nul代表空设备

copy 1.txt + 2.txt 3.txt rem 合并12文件的内容,保存为3

copy 1.txt + rem 复制文件到自身,实际为修改文件日期

 

find “abc” c:\user.txt rem 查找字符串,找不到则errorlevel1/i 忽略大小写 /c 统计个数

 

more c:\user.txt rem 逐屏显示文件内容

 

& 顺序执行多条命令,不论上一条时候成功

find “abc” c:\user.txt && echo OK rem && 顺序执行多条命令,碰到出错命令则终止

find “abc” c:\user.txt ||echo NG rem || 顺序执行多条命令,碰到正确命令就停止

 

dir /s . | find /c “.exe” rem 管道命令,统计当前目录及子目录下所有exe文件

 

copy 1.txt F: > nul 2> nul rem 重定向所有信息至nul标准的输入,输出和错误输出分别表示为STDIN,STDOUT,STDERR,也可以用012来表示

 

echo ^^W ^> ^W > test.txt rem ^是转义字符,把所有的命令符号如>转义成文本字符

 

‘ipconfig ^| find /i “ip address”’ rem 单引号将多个命令组成的复合语句作为一条语句;双引号表示其内部的内容为文本符号,或用来连接以空格间隔的字符串

 

date < date.txt rem 从文件获取输入

 

test.bat “good” “for” “you”

%0 批处理文件本身,即test.bat

%1 第一个参数,即”good”

%2 第二个参数,即“for”

%* 从第一个参数开始的所有参数,即“good”“for”“you”

%~1 – 删除引号

%~f1 – %1扩充到一个完全合格的路径名

%~d1%~p1%~n1%~x1%~s1%~a1%~t1%~z1%~$PATH:1

%~dp1 – %1扩充到驱动器号和路径

%~nx1 – %1扩充到文件名和扩展名

 

if %1==”good” echo good

/i 忽略大小写 existnot exist

if exist c:\users\test.txt (echo “good for you”)

 

setlocal enableextensions

endlocal

setlocal enableextensions|disableextensions|enabledelayedexpansion|disabledelayedexpansion

用到命令扩展的批处理,建议开头加上setlocal enableextensions确保程序正确执行

变量在iffor复合语句中是一次性替换的。如果想启用enabledelayedexpansion,注意后续引用使用!p!而不是%p%

 

echo %p:~0,3% rem 显示变量p的前三个字符 %name~start,count%

echo %p:~-2% rem 显示p最后2个字符

echo %p:~0,-2% rem 显示p除了最后2个字符以外的所有字符

echo %p:aa=c% rem 替换p中所有aac

echo %p:*aa=c% rem 替换第一个aa及之前的所有字符为c

 

set /a p=39/10 rem /a 表示支持表达式运算

set /p var=请输入 rem /p表示接受输入复制给var

 

choice rem 让用户输入一个字符,返回errorlevel1234

 

assoc .txt rem 显示扩展名.txt关联的文件类型

ftype txtfile rem 显示txtfile文件类型关联的执行程序参数

 

for /r d: %%i in (*.txt) do find “abc” %%i rem d盘所有目录下txt文件查找abc

for /f %%i (‘set’) do echo %%i rem 输出set命令的结果

for /f “tokens=1,2,3 delims=-“ %%a in (‘date /t’) do ( rem 每行分成123列,第一列给a

echo %%a rem 如果是tokens=2*,则第二列给a,后面的列都给b

echo %%b rem 第二列给b

echo %%c) rem 第三列给c

 

 

xcopy d:\mp3 e:\mp3 rem 复制文件和目录树

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值