《基本使用方法和命令总结.docx》由会员分享,可在线阅读,更多相关《基本使用方法和命令总结.docx(4页珍藏版)》请在金锄头文库上搜索。
1、cmd基本使用方法和命令总结注释命令:rem1-cmd:获取当前路径:set cur_path=%cd%echo %cur_path%2-cmd:设置cmd窗口标题title name3-cmd:写数据到当前目录下的文件echo %time% %cd%record.txtecho start %cd%record备注:如果目录有空格,需要将%cd%用引号括起来 例如:%cd%4-cmd:计数set count = 1set /a count = count + 1echo %count%5-cmd:loop循环使用:loopecho time test.txtif %j%= %n% goto
2、endgoto loop:end6-cmd:算数运算set count = 10set /a %count% /2 除法,结果是5set /a %count% /%2 取余,结果是0备注:cmd脚本中取余要用2个% , 例如set /a f = %count% % 27-cmd:设置时间等待ping 127.0.0.1 nul8-cmd:取日期set datetime = %date:0,10% /从第0位开始,取10位字符set year = %date:0,4%【2016】set month = %date:5,2%【11】set day = %date:8,2%【02】echo %tim
3、e%【15:14:08.98】for /f tokens=1-3 delims=/ %a in (date /t) do (set mydate=%a-%b-%c)说明:取前123个参数,使用“/” 分割, 必须使用单引号, %a 是显示申明, %b %c 是隐式声明的参数,必须是连续的字符9-cmd:for循环的使用:计数for /l %a in (1,1,5) do echo %a读文件和目录for %i in (a.txt) do echo %i /没有加参数只会显示a.txt这个名字,不会显示内容for /f %i in (a.txt) do echo %i /加了/f这个参数会读出a
4、.txt文件的内容以上是以文件的一行作为一个%i输出的如果需要将一行分解成更小的内容处理,需要配合使用tokens 和 delims 了例如:for /f delims= %i in (a.txt) do echo %i /以空格分隔,%i显示分隔后的第一个元素for /f tokens=2 delims= in (a.txt) do echo %i /以空格分隔,%i显示分隔后的第二个元素注意:tokens后面必须有个空格,而且tokens参数必须在delims的前面备注:tokens支持通配符tokens=2-3tokens=2,3tokens=* /全部skip参数是忽略文件前n行eol
5、参数是指定当一行以什么符号开始就忽略它例如:for /f skip=1 tokens=* delims= in (a.txt) do echo %i /tokens必须等于* ,不然只会去每行的第一个参数10-cmd:查找当前文件夹中指定类型文件中的异常关键字列出指定类型文件的命令dir /b *.txt / /b参数可以列出完整的路径for /f tokens=* %f in (dir /b *.txt) do (findstr /n /c: CRASH /c:ANR %f & (echo %f中有异常error.txt) | (echo %f中没有有异常error.txt)说明:必须使用单
6、引号, /n 表示显示行号 /c:搜索异常的关键字还有一种可以处理多种类型的文件for %f in (*.txt *.log) do (.)11-cmd: & 和&区别echo gao & echo qiang&:不管命令是否执行成功,一直执行完毕&:执行多条命令,当前出错时就停止12-cmd: | 命令管道命令,前一个命令的结果作为下个命令的参数例如:netstat -n -p tcp | find 338913-cmd:关于 1nul 和 2nul1nul :不显示命令运行的正确提示例如:echo gao 1nul /结果不会有任何提示2nul :不显示错误的提示例如: gao 2nul
7、/结果不会有错误提示14-cmd: 关于符号的应用set s =gaopinqiangecho %s:3,10% /从第三个字符开始取,取10个字符可以取变量的指定内容,类似于Python中的分片截取最后5个字符echo %s:-5%15-cmd: for 循环中使用set失效问题(需要设置 变量延迟)问题背景:在for循环中取时间变量,每次取的时间都一样,分析后发现是因为set 为生效例如:set num=0 & echo %num% / 会提示ECHO处于打开状态,因为cmd预编译机制并未对num赋值,所以echo命令结果就是echo处于打开setlocal EnableDelayedExpansion 设置变量延迟 可以解决该问题例如:setlocal EnableDelayedExpansionset num=0 & echo !num!注意:使用变量延迟的时候需要把%num% 变化为 !num!这样for中就可以使用set 命令设置变量了,不会导致不生效问题