bat脚本简单命令

时间:2022-06-04 14:37:38

1.if 判断

(1.1)判断字符串是否为空:

    if "%var1%" == " " ( echo null)
      else(echo not null )

(1.2)判断字符串是否不等于test  

    if not "%var1%" == "test" ( echo not equal)
    else(echo equal )

(1.3)判断文件是否存在

  if exist test1.txt (echo exist file)

(1.4)判断数值是否相等

  if 1 equ 2 (echo equal) else (echo 1 not equal 2)

(1.5)if--else if---else

if "%type_tmp%" == "Release_Static" (
  echo "++++++++++++++++++++++it is Release Static+++++++++++++++++++"
  set type="Release Static"
)else if "%type_tmp%" == "Debug_Static" (
  echo "++++++++++++++++++++++it is Debug Static+++++++++++++++++++++++"
  set type="Debug Static"
)else (
  echo "++++++++++++++++++++++++change type+++++++++++++++++++++++++++++"
  set type=%type_tmp%
)

(1.6) if 中的即不等于aaa也不等于bbb:以下

if not "%proj%" == "aaa" (
  if not "%proj%" == "bbb" (
  echo "%proj% is not aaa nor bbb and so exit"
  exit 1
  )
)

有的时候,我们发现我们的if else 已经按照上面操作了,还是报错,这可能就跟格式有关系了,注意括号前至少要一个空格。

2.findstr 找到包含指定字符的文件

例子: dir /B |findstr "test"

3.sleep 

bat中没有sleep这个命令,如果要等待,你不能写sleep 10 这样,那要怎么实现呢,很简单,用ping 就可以了

ping 127.0.0.1 可以sleep 几秒,可以通过-n 来控制ping 的连接数(具体:ping /?),比如ping 127.0.0.1 -n 10 表示ping 10个连接数:

bat脚本简单命令

至于要计算出到底用了时间,可以使用time命令来计算。

4.time 

set datevar=%date:~0,4%%date:~5,2%%date:~8,2%
set mytime=%time:~0,2%%time:~3,2%
set result_dir=%datevar%%mytime%

echo result_dir=%result_dir%

如下:

bat脚本简单命令

看到结果时201807161835表示2017年7月16号18:35

这里涉及到bat的字段串的截获,如上,输入date得到的是2017/07/16,~0,4表示的是位置0后的4个字符,~5,2表示位置5后面的2个字符,其他类似。

5.判断远程路径是否存在

参考:http://www.bathome.net/thread-31314-1-1.html

if exist \\%RemoteServerIp%\%RemoteServerDir% (goto  auto_bak)  else echo "not exist!!"

或者:

bat脚本简单命令