http://www.bathome.net/thread-1205-1-1.html;
http://www.cnblogs.com/mq0036/p/3412171.html: 系统中每个命令执行完毕后,都会返回一个i
返回码,成功为0,失败为1. echo %errorlevel%: linux中用$! 表示 查看系统set变量中有没有errorlevel
http://www.cnblogs.com/mq0036/p/3412171.html (变量延迟的问题??)
?: 表示0个或1个??
http://www.cnblogs.com/adforce/p/3282591.html
http://blog.csdn.net/jeefchen/article/details/5663822
http://www.cnblogs.com/codewater/articles/2385371.html
cmd本身提供了命令的帮助信息,只要看帮组,在某些参数记不清楚的时候,查一下就好了
>help >command /?
要习惯于看帮组文档,就像在linux中使用man一样
基本结构:
@echo off
echo author: bkylee
echo date: oct 21,2015
echo functionalty: rename all files in a directory or one specified
echo ######################################
.....
pause
变量延迟:
在由&,&&,||,()组成的符合句中,变量的值取该语句之前的值,在该符合句中可以给变量赋值,
但变量的新值,要在该语句的下一句才会生效,即:变量的值会“延迟“起作用
利用变量延迟,可以交换两个变量的值而不用中间变量;
要避免“变量延迟”的问题,使变量的新值在该复合句中即时生效,应该:
setlocal enabledelayedexpansion
..... echo !delayed_var!
变量延迟的机制:
因为bat执行命令的机制是:首先将一条命令读入内存,在执行该命令之前,先做一些预处理工作,包括
给该语句中的 “变量 %var%”赋值,这时候,因为这条语句还没有执行,所以当然是用该语句之前的值给
变量赋值, 然后才执行这条语句。
为了让语句中的变量,能够及时感知环境的变化,使用“变量延迟”技术, 让语句在执行之前,再次对其中的变量赋值,...
在bat编程中,变量延迟也用得相当“普遍”:凡是在for循环语句的结构体中,要改变“非迭代变量”的变量 的值,如
累加,字符串连续串接等,都要使用变量延迟
setlocal ... 注意和endlocal配合使用
bat脚本中字符串连接直接挨着写就好了,不用什么+.等等
http://biancheng.dnbcw.info/python/341315.html 好!
bat programming is easy and powerful
原文:http://www.cnblogs.com/bkylee/p/4893390.html