赞
踩
将bat文件→txt文件后→txt另存为ANSI格式的bat文件
如:del *.* == del. ::表示删除所有的内容
多次显示时,enter键每次多显示一行,空格直接显示下面全部
MORE<filename
TYPE filename|more
-----
例如:@echo off
more< demo.txt
type demo.txt|more ::和上面一行功能一样
pause
----
COPY filename+CON
TYPE CON>>filename
输⼊完毕后按F6
@echo off
echo 延迟前...
ping /n 2 127.0.0.1>nul
echo 延迟后...
pause>nul
:: 第二种延迟
@echo off
echo 延迟前....
for /l %%a in (1,1,10000) do echo %%a>nul
echo 延迟后....
pause>nul
@echo off
set /p str=<test.txt
echo %str%
pause >nul
@echo off
::/p说明是外部输入参数
set /p a=please input your value:
start http://www.baidu.com/s?wd=%a%
pause
@echo off
mode con cols=113 lines=15 &color 9f
cls
echo.
echo 程序正在执行。。。。。
echo.
echo _______________________________
set /p = █<nul
for /L %%i in (1 1 38) do set /p b=█<nul&ping /n 1 127.0.0.1>nul
echo 100%%
echo _________________________________
pause
直接进入对应的网址就能查看,常用网址有
1. https://www.ipaddress.com/ 简记为iPad dress.com
2. https://www.ip138.com/ 简记为ip138.com
3. https://en.ipshu.com/ 简记为ipshu.com
参考:https://blog.csdn.net/longzhizhui926/article/details/83002685
curl -- help 查看参数
curl ifconfig.me #只返回外网IP地址
curl icanhazip.com # 也只返回外网ip
curl ipinfo.io/ip # 也只返回外网ip
curl ipecho.net/plain # 也只返回外网ip
curl www.trackip.net/i # 返回一个网页源码,也可看出公网IP
curl ip.sb # 也只返回外网ip
#返回IP和地区
curl cip.cc # 返回中文地址和IP号
curl ipinfo.io # 英文地址
1. echo [off/创建文件中添加的内容]> test.txt
2. type nul> 文件名称 #通常和excel配合使用产生多个文件名
3. copy nul 文件名 #也能得到相同效果
4. copy con 文件名 #输入后紧接着可以输入内容,CTRL+z结束输入,不太适合批量操作
注意:
echo 创建新文件时,
1.若有添加内容,不会显示”ECHO 处于关闭状态“
2.若echo未跟添加内容,新建文件中会出现”ECHO 处于关闭状态“
echo off > test.bat # 会建立一个空文件
test.bat中的代码
@ echo off %关闭回显,不显示代码内容%
echo hello world! %使用echo 输出显示内容%
pause %暂停%
@ 隐藏执⾏的命令,只显示结果。 echo 你好 @echo 你好 pause & 命令连接符号,就是将两个命令连续执⾏,不⽤分⾏ dir c:\ & dir d:\ & dir e:\ && 连接两个命令,当&&前的命令成功时,才执⾏&&后的命令 @echo off 关闭回显 echo hello sanyuan 在屏幕显示“hello sanyuan” pause echo 你好 @echo 你好 pause dir c:\ && dir d:\ dir z:\ && dir d:\ | 管道符号,就是将上⼀个命令的输出的内容,作为下⼀个命令的输⼊内容 netstat -an | find "444" || 命令连接符号,表示上⼀条命令执⾏失败后,才执⾏||符号后的内容 dir z: || dir c:\ > 重定向符号,将命令的输出结果重定向到其后⾯的设备中去,后⾯的设备中的内容被覆盖 dir c:\ >d:\test.txt >> 重定向符号,将命令的输出结果重定向到其后⾯的设备中去,后⾯的设备中的内容会被增加在 后⾯ dir c:\ >>d:\test.txt dir d:\ >>d:\test.txt ^ 取消特殊符号的作⽤ echo ^> >c:\1.txt * 通配符号,表示任意个字符 del c:\windows*.log ? 通配符号,表示任意⼀个字符 dir c:\?indows . 表示当前⽬录 dir .\ .. 表示上⼀级⽬录 dir ..\ " " 界定符号,通常⽤来引⽤有空格的⽬录 dir "c:\Documents and settings" : 标签定位符号,表示后⾯的内容是⼀个标签名 @echo off :again echo welcome! pause goto again , 某些时候可以当空格来使⽤ echo, dir,c:\ ; 分号,当命令相同时,可以将不同⽬标⽤来隔离 dir c:\;d:\ :: 表示后⾯的语句是注释 @echo off ::显示c盘根⽬录⽂件 dir c:\ pause
一个自动循环的程序例子,其中(::后)和(两个%)之间的都是注释,echo后是将参数输出显示,否则直接将变量作为参数放入程序中。
下面代码是一个名为test.bat的文件中
::%关闭屏显,不显示代码内容%
@echo off
echo %0 %输出显示test.bat%
%0 %这样会执行本身.bat文件,导致一直循环执行%
pause
作用
%0 %1 %2 %3 %4 %5 ....到%9,还有⼀个%*
%0 返回批处理所在的绝对路径/可使批处理程序⽆限循环执⾏
%1返回批处理的第⼀个参数
%2返回批处理的第⼆个参数
%3-%9同样如此
%*返回所有参数的值
```shell
::%关闭屏显,不显示代码内容%
@echo off
echo %1
echo %2
echo %3
echo %*
pause
需要注意的是:赋值的”=“两边没有空格符号,不然出错
::%关闭屏显,不显示代码内容%
@echo off
set val=test
echo %val% ::显示val的值
pause
这时只要在控制台输入:test.bat teh
,控制台回车后输出teh
::%关闭屏显,不显示代码内容%
@echo off
set val=%1
echo %val%
pause
就像python程序中的input一样,
::%关闭屏显,不显示代码内容%
@echo off
::/p说明是外部输入参数
set /p val=please input your value:
echo %val%
pause
符号 | 作⽤ |
---|---|
() | 分组 |
! ~ - | ⼀元运算符 |
* / % | 算数运算符 |
+ - | 算数运算符 |
<< >> | 逻辑移位 |
& | 按位“与” |
^ | 按位“异” |
= *= /= %= += -= | 赋值 |
&= ^= = <<= >>= | |
, | 表达式分隔符 |
计算的格式
需要注意,除加减乘除外,其他符号计算需要引号
set /a var=1+1
set /a var=4-2
set /a var=2*2
set /a var=6/3
set /a var= 1 "|" 1
set /a var= 1 "^" 1
set /a var= 1 "&" 1
set /a var= 1 "+" 1
set /a var= 1 "%" 1
set /a var= 2 "<<" 2
set /a var= 4 ">>" 2
@echo off
set var=www.sanyuan.com
echo first:%var%
set var=%var:1=2%
echo end:%var%
pause
由于原字符串无l,没有进行替换
@echo off
set var=www.sanyuan.com
echo first:%var%
set var=%var:.=A%
echo end:%var%
pause
将英文句号替换成了大写A
(2) 截取字符
原始字符set var=www.sanyuan.com
%PATH:~A,B% 截取位置从下标A开始(最开始是0),截取B个
::[1,3]
set var=%var:~1,3%`后的结果`ww.
%PATH:~-B% 反⽅向截取B个,从最后一位向前截取B个
::[-5,-1]
set var=%var:~-5% '结果是'n.com
%PATH:~A,-B% 截取位置从下标A开始,向后,反向B个去除
::[0,-5)
set var=%var:~0,-5% '结果是'www.sanyua
::[3,-5)
set var=%var:~3,-5% '结果是'.sanyua
个人总结:
%PATH:~A,B% :
A,B为正,范围[A,B] ,最左第一个为0
A为负,无B,范围[A,-1] ,最右边是-1,然后向左依次减少
A为非负,B为负,范围[A,B),A以正数编号,最左为0;B以最右为-1,负数编号
IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command
@echo off
ipconfig
if errorlevel 1 goto a ::跳转到标签
if errorlevel 0 goto b
:a ::设置标签
echo result is a!
pause
exit
:b ::设置标签
echo result is b!
pause
@echo off
IF EXIST demo.txt (del demo.txt) ELSE (echo is not exist!)
pause
符号 | 作⽤ |
---|---|
EQU (equal) | 等于 |
NEQ (not equal) | 不等于 |
LSS (less) | ⼩于 |
LEQ (less equal) | ⼩于或等于 |
GTR (greater) | ⼤于 |
GEQ (greater equal) | ⼤于或等于 |
@echo off
set /p var=请输⼊⼀个数字:
if %var% gtr 5 if %var% lss 10 echo 这是⼀个⼤于5⼩于10的数!
pause
%%a是个变量。命名规则是从⼩写a-⼩写z,和⼤写A-⼤写Z
@echo off
for %%a in (c:\sy.txt) do echo %%a
pause
@echo off
for /d %%a in (*) do echo %%a ::当前文件夹下的所有路径,显示出路径名称
pause
@echo off
::这里表示搜索所有c盘下的exe文件,这里的c:\可以省略表示当前路径下搜索
for /r c:\ %%a in (*.exe) do @echo %%a
pause
@echo off
::显示1,2,3,4,5
for /l %%a in (1,1,5) do @echo %%a
pause
筛选出符合条件的文本
几个参数代表的意思:
eol表示开头是这个字符的为注释掉的
skip 表示忽略的行数
tokens表示将字符串分开后,第几个列
delims表示一行字符按照什么标志分开,什么不写,默认是空格
当以**@作为注释行标志**,以空格作为分割,第一列的字符串输出
当以**;作为注释行标志**,以空格作为分割,第2列的字符串输出
@echo off
:: ;作为注释标志,下面的每行以空格分开,取第二、四、五个输出
for /f "eol=; tokens=2,4,5 delims= " %%a in (demo.txt) do echo %%a %%b %%c
pause
使用usebackq 得到的是后面in(‘dos输入’)的结果
::set:显示、设置或删除 cmd.exe 环境变量。句中delims==,第二个等号指的是分割的符号
::所以输出的是环境变量名字
FOR /F "usebackq delims==" %%i IN (`set`) DO echo %%i
::dir是路径,输出的是还是dir显示的内容,因为原来内容中没=号
FOR /F "usebackq delims==" %%i IN (`dir`) DO echo %%i
~I - 删除任何引号("),扩展 %I
%~fI - 将 %I 扩展到⼀个完全合格的路径名,不只是文件名
%~dI - 仅将 %I 扩展到⼀个驱动器号,根目录的磁盘名字
%~pI - 仅将 %I 扩展到⼀个路径,
%~nI - 仅将 %I 扩展到⼀个⽂件名
%~xI - 仅将 %I 扩展到⼀个⽂件扩展名
%~sI - 扩展的路径只含有短名
%~aI - 将 %I 扩展到⽂件的⽂件属性
%~tI - 将 %I 扩展到⽂件的⽇期/时间
%~zI - 将 %I 扩展到⽂件的⼤⼩
%~$PATH:I - 查找列在路径环境变量的⽬录,并将 %I 扩展
到找到的第⼀个完全合格的名称。如果环境变量名
未被定义,或者没有找到⽂件,此组合键会扩展到
空字符串
有些像goto
@echo off
call :sub sum 10 20 50
echo the result: %sum%
pause >nul
:sub
set /a %1=%2+%3+%4
goto :eof
call:可在一个bat文件中运行调用另一个bat文件
将参数放在被调用文件的后面用逗号或空格隔开
call son_bat.bat 3 4
@echo off
call :sub sum 10 20 50
echo 运算的结果:%sum%
pause
:sub
set /a %1=%2+%3+%4
goto :eof
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。