-
cmd命令不区分大小写
-
如何让bat文件命令框不关闭
另起一行,加上pause
-
set /a
和set /p
中的/a
,/p
什么意思set /a 执行数学计算,set /p 提示用户输入,其=右边的是提示语
例1:@echo off
set /p b=输入一个数字:
echo %b%
set /a a=2*%b%
echo %b%+%b%=%a%
pause>nul
例2:set /p=你好啊!<nul 这里省掉了变量,相当于只做显示用,<nul是去掉换行
注意:使用set /a,则变量和表达式之间可以存在空格,如set /a num=num+1
和set /a num = num + 1
是一样的效果 -
choice=%choice:2,3%中,2,3什么意思
截取变量choice中从第2个字符后面开始的3个字符(即从下标为2的字符开始截取
),再赋给choice。如choice为1234567,则执行该语句后为345。
如果两个数字(偏移量和长度)都是负数,使用的数字则是环境变量数值长度加上指定的偏移量或长度。即:
% choice:~-10% 会提取choice变量的最后十个字符。
% choice:~0,-2% 会提取choice变量的所有字符,除了最后两个
% choice:~-3,-2% 会提取choice变量倒数第三个字符,左闭右开 -
批处理中的***>nul是什么意思
>nul是1>nul的缩写,nul即null的简称。整体的意思就是把数据输出到空设备,不在命令行显示
<nul,从空设备中读入信息,效果是不换行
@echo off
set /p s=A<nul
set /p s=B
pause -
Exit与goto :eof的区别
运行goto :eof后,cmd返回并将等待下一条命令;运行exit后,cmd将直接关闭
-
121%%100是什么意思
数值121按100进行求余运算,%%就是求余运算符
-
Echo处于关闭状态分析
@echo off
set s = “a”
echo %s%
pause
这条语句会报echo处于关闭状态,原因是找不到这个变量s,因为代码中只有变量“s ”,注意,这个变量是有空格的。
在bat语句中,=左边的所有值都将成为变量的一部分,包括空格 -
管道命令的优先级高于重定向命令,重定向命令的优先级高于组合命令
-
bat在goto语句块中不能用if…else…
:pk
for /l %%i in (1,1,99) do (
if not “!str!”"" (
set par=!str:~1,1!
set str=!str:~1!
if not “!var!”" " set flag=1
) else (
goto :eof
)
)
goto :eof
注意:if的结束括号、else、else的开始括号要在同一行 -
使用bat检出svn上的文件,路径对的还是报e17000000,…… don’t exist的问题
由于从浏览器复制过来的url地址,在bat文件中被编码成了url独有的地址,win默认的编码格式与之不同,解析出错,所以报找不到此路径。可以在检出之前如此设置
@echo off
set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
svn checkout https://192.168.xxx.xxx/svn/xxxx/xxxx/ D:\Projects\xxxx\web --username test --password test
pause -
cd与cd /d的区别
cd是不会修改当前目录的,而cd /d能修改当前目录
cd … 回到上级目录
cd . 当前目录
cd / 根目录 -
echo. 换行
-
如何查找文件
查找某个目录下的文件:
dir d:\test|find "txt"
查找某个目录及其子目录下的文件:for /r d:\test %i in (*txt) do @echo %i
,括号中的匹配模式一定要带至少一个*,否则查找不准
BAT脚本解惑
最新推荐文章于 2024-09-20 17:33:14 发布