以下的演示涉及几个知识点:

1. 怎样把命令输出内容保存到变量中?

2. 多次改变变量值,为什么在for或是if的()中的无效,怎样变通?

3. bat的function实现?

见代码,和代码凝视

  1. ::@echo off
  2. ::adb的绝对路径
  3. set qAdb="d:\Program Files (x86)\android-sdks\platform-tools\adb.exe"
  4. echo ADB.exe绝对路径是: %qAdb%
  5.  
  6. ::通过for能使用``来返回命令的输出到变量中的特点,达到把命令输出结果保存到变量的目的
  7. FOR /F "usebackq delims==" %%i IN (`%qAdb% get-state`) do (
  8. echo 手机当前连接状态:%%i
  9. set mobileState=%%i
  10. )
  11.  
  12. echo.
  13.  
  14. ::不能使用NOT 否则无法使用()这样多行的语句;
  15. ::()中无法写凝视,由于bat把它()当成一行语句,这样凝视就相当于一行中语句一部分
  16. if "device" == "%mobileState%" (
  17. echo 手机已经连接上
  18. ) else (
  19. echo 手机未连接
  20. echo.
  21. echo 您的电脑IP当前地址例如以下:
  22. ipconfig|find /I "IPv4"
  23. echo.
  24. call :getIp
  25. call :connect
  26. )
  27.  
  28. ::以下由于是function声明部分,就当这里是bat的末尾,使用goto跳转到bat末尾
  29. GOTO :EOF
  30.  
  31. ::以下是function===============================
  32.  
  33. ::func 得到用户输入ip
  34. :getIp
  35. set /p ip=输入手机ip地址,以adb连接它
  36. ::退出本次回调,跳转到bat
  37. GOTO :EOF
  38.  
  39. ::func 使用用户输入ip通过adb连接手机
  40. ::由于bat的()当成一行解析,在解析这一行代码时,里面使用到的变量值必须在解析前赋值,在这一行中改变某变量值时,仅仅有在下句语句解析时,才得得到;依据这个特性,无法在一行中改变变量,所以仅仅能把setget分开写成多行(label)的方式来运行
  41. :connect
  42.  
  43. echo.
  44. echo 尝试连接 %ip%
  45. %qAdb% connect %ip%
  46. ::退出本次回调,跳转到bat
  47. GOTO :EOF

关于bat的变量赋值和解析机制的更多相关文章

  1. Linux Shell编程(7)——变量赋值

    =赋值操作符(它的左右两边不能有空白符) 不要搞混了=和-eq,-eq是比赋值操作更高级的测试.注意:等于号(=)根据环境的不同它可能是赋值操作符也可能是一个测试操作符.例子:简单的变量赋值 #!/b ...

  2. 轻松搞定javascript变量(闭包,预解析机制,变量在内存的分配 )

    变量:  存储数据的容器     1.声明        var   2.作用域       全局变量. 局部变量. 闭包(相对的全局变量):   3.类型         a.基本类型(undefi ...

  3. JavaScript解析机制之变量提升

    1.什么是预解析? 在当前作用域下,JS 运行之前,会把带有 var 和 function 关键字的事先声明,并在内存中安排好.(这个过程也可以理解为变量提升)然后再从上到下执行 JS 语句(预解析只 ...

  4. JS的解析机制

    JS的解析机制,是JS的又一大重点知识点,在面试题中更经常出现,今天就来唠唠他们的原理.首先呢,我们在我们伟大的浏览器中,有个叫做JS解析器的东西,它专门用来读取JS,执行JS.一般情况是存在作用域就 ...

  5. javascript解析机制、闭包详解

    js解析机制: js代码解析之前会创建一个如下的词法环境对象(仓库):LexicalEnvironment{ } 在扫描js代码时会把: 1.用声明的方式创建的函数的名字: 2.用var定义的变量的名 ...

  6. JavaScript解析机制与闭包原理实例详解

    js代码解析机制: js代码解析之前会创建一个如下的词法环境对象(仓库):LexicalEnvironment{ } 在扫描js代码时会把: 1.用声明的方式创建的函数的名字; 2.用var定义的变量 ...

  7. 从var func=function 和 function func()区别谈Javascript的预解析机制

    var func=function 和 function func()在意义上没有任何不同,但其解释优先级不同:后者会先于同一语句级的其他语句. 即: { var k = xx(); function ...

  8. javascript解析机制——预解析

    JavaScript解析机制是什么? JavaScript解析过程分为两个阶段,一个是编译阶段,另外一个就是执行阶段. * 编译阶段         编译阶段就是我们常说的JavaScript预解析( ...

  9. 进击JavaScript核心 --- (2)函数和预解析机制

    一.函数 每个函数都是 Function类型的实例,也具有属性和方法.由于函数也是一个对象,因此函数名实际上也是一个指向函数对象的指针,不会与某个函数绑定 1.函数的定义方式 (1).函数声明 fun ...

随机推荐

  1. [JSOI2007]文本生成器(AC自动机+DP)

    题意 给你n个串.问有多少长度为m的串使得这n个串至少在其中出现过一次.输出答案膜10007意义下的结果. (n<=100,每个串的长度<=100) 题解 在AC自动机上跑DP. 用到一个 ...

  2. 修复linux的grub2引导(单独/boot,lvm-root)

    root@ubuntu:/home/ubuntu# pwd /home/ubuntu root@ubuntu:/home/ubuntu# lsblk NAME                  MAJ ...

  3. 题解 P2872 【[USACO07DEC]道路建设Building Roads】

    这道题真的是令人窒息,Kruskal调了贼久一直RE,最后发现数组大小稍微少了那么一点点.(也就10倍吧..) 言归正传,根据本人的分析(以及算法标签的提示),这是一道求最小生成树的题目,当然要注意已 ...

  4. 函数指针的转换 & C的注意点

    再让我们看看<signal.h>中声明的signal函数void (*signal(int, void(*)(int)))(int)首先,用typedef简化,typedef void ( ...

  5. 大数据时代的新BI系统架构发展趋势

    商业智能(BI,Business Intelligence).它是一套完整的解决方式,用来将企业中现有的数据进行有效的整合,高速准确的提供报表并提出决策根据.帮助企业做出明智的业务经营决策.     ...

  6. PCL ubuntu-12.04

    1.apt-get install build-essential cmake cmake-qt-gui 2.sudo add-apt-repository ppa:v-launchpad-joche ...

  7. dropify,不错的图片上传预览插件

    引言 传统的图片上传,很丑.点击选择之后,还无法预览. 有一种方案是传到服务器,然后返回地址,然后显示,比较麻烦. 用这个dropify,就可以解决之歌问题. 看效果 用法 1.引入文件,需要jque ...

  8. 关于在天机项目中遇到的常用git 命令

    1. 本地分支和远程分支 1>我们在本地创建分支,第一次push到远程是没有分支存在,执行git push 会有提示,按照提示的内容操作即可,当然我们也可以 git push origin fe ...

  9. 2015北京网络赛 J Scores bitset+分块

    2015北京网络赛 J Scores 题意:50000组5维数据,50000个询问,问有多少组每一维都不大于询问的数据 思路:赛时没有思路,后来看解题报告也因为智商太低看了半天看不懂.bitset之前 ...

  10. toggleClass slideToggle

    $("#wrapper").toggleClass("toggled"); $("p").slideToggle(1000); demo: ...