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

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

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

3. bat的function实现?

见代码,和代码凝视

::@echo off
::adb的绝对路径
set qAdb="d:\Program Files (x86)\android-sdks\platform-tools\adb.exe"
echo ADB.exe绝对路径是: %qAdb% ::通过for能使用``来返回命令的输出到变量中的特点,达到把命令输出结果保存到变量的目的
FOR /F "usebackq delims==" %%i IN (`%qAdb% get-state`) do (
echo 手机当前连接状态:%%i
set mobileState=%%i
) echo. ::不能使用NOT 否则无法使用()这样多行的语句;
::()中无法写凝视,由于bat把它()当成一行语句,这样凝视就相当于一行中语句一部分
if "device" == "%mobileState%" (
echo 手机已经连接上
) else (
echo 手机未连接
echo.
echo 您的电脑IP当前地址例如以下:
ipconfig|find /I "IPv4"
echo.
call :getIp
call :connect
) ::以下由于是function声明部分,就当这里是bat的末尾,使用goto跳转到bat末尾
GOTO :EOF ::以下是function=============================== ::func 得到用户输入ip
:getIp
set /p ip=输入手机ip地址,以adb连接它
::退出本次回调,跳转到bat尾
GOTO :EOF ::func 使用用户输入ip通过adb连接手机
::由于bat的()当成一行解析,在解析这一行代码时,里面使用到的变量值必须在解析前赋值,在这一行中改变某变量值时,仅仅有在下句语句解析时,才得得到;依据这个特性,无法在一行中改变变量,所以仅仅能把set与get分开写成多行(label)的方式来运行
:connect echo.
echo 尝试连接 %ip%
%qAdb% connect %ip%
::退出本次回调,跳转到bat尾
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. shell应用之批量添加用户实例

    这里要实现功能介绍 读取一个用户列表文件 给列表中的用户添加随机密码需要包含大小写字符和数字 保存对应的用户和密码文件 这些用户属于同个用户组 1.列表文件 [root@mail ~]# cat li ...

  2. Git学习笔记 1,GitHub常用命令1

    廖雪峰Git教程 莫烦Git教程 莫烦Git视频教程 --------------- init > apt-get install git # 安装 > mkdir /home/yzn_g ...

  3. [USACO5.4]奶牛的电信Telecowmunication(网络流)

    P1345 [USACO5.4]奶牛的电信Telecowmunication 题目描述 农夫约翰的奶牛们喜欢通过电邮保持联系,于是她们建立了一个奶牛电脑网络,以便互相交流.这些机器用如下的方式发送电邮 ...

  4. EF框架—Database-First

    ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案,现已经包含在 Visual Studio 2008 S ...

  5. [Python] Use a Python Generator to Crawl the Star Wars API

    In this lesson, you will be introduced to Python generators. You will see how a generator can replac ...

  6. How to test Heat (by quqi99)

    作者:张华  发表于:2015-12-19版权声明:能够随意转载.转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 (http://blog.csdn.net/quqi99 ) Heat ...

  7. Domino服务器SSL的配置录像

    Domino服务器SSL的配置录像 格式:avi, 大小:25M 时长: 6分钟 本文出自 "李晨光原创技术博客" 博客,转载请与作者联系!

  8. Android控件-TabHost(二)

    这边再补充一种更为灵活的方法,可以把TabWidget隐藏,用(RadioGroup+RadioButton)来代替,并利用监听器的方式来实现监听点击点击跳转Activity. 在讲解之前,先补充几点 ...

  9. Debian9.5 VNC Server远程桌面配置

    VNC概述 VNC (Virtual Network Console)是虚拟网络控制台的缩写.VNC 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的.VNC 是在基于 ...

  10. PHP高手进阶-LAMPer技能树