Windows bat 学习(高级)
- 有一种叫做 Command Processor Extensions 的东西,即命令处理器扩展。他会使命令更加高级,功能更多。
在 cmd 里可以使用 ECHO %CMDEXTVERSION% 查看当前版本。
- 在 cmd.exe 控制台窗口中输入命令,跟在 Windows Explorer 中双击 bat 执行相同的命令,其表现是不一样的。
- 双击 bat 等同于把 bat 的内容 cmd 里一行一行命令敲进去(多行的命令在cmd里并不好敲)
- 若要学习各个命令的详细文档,可在 cmd 中输入例如 SET /? > SET.txt 保存到文本文件中再打开阅读,这样比较方便。在 cmd 中如果文本太长他会逐步显示,比较麻烦,也不能用鼠标选中或者查找。
- 变量延迟展开(Delayed environment variable expansion)
(SET /? 中有详细说明)
cmd 里的变量都是“环境变量”,通常是先 SET,再使用 %var% 这样的形式使用。%var% 是在读取当前命令时展开的。这是什么意思?
set VAR=before
if "%VAR%" == "before" (
set VAR=after
if "%VAR%" == "after" @echo If you see this, it worked
)
第4行永远不会打印。因为第4行的 %VAR% 在第2行命令“读取”时,已经被展开,即 before。第3行的赋值已经不可能影响第4行了。我猜是因为第4行是在第2行的if 里面的,在读取第2行时,第4行也读取了,所以就被展开了。
跟C++对比,命令行里的 “环境变量” 实际是介于 “真变量” 和 “宏变量” 之间的东西。
“延迟变量展开” 的意思是基本上就是把 “环境变量” 变为 “真变量”。
要改成这么写:!VAR!
set VAR=before
if "%VAR%" == "before" (
set VAR=after
if "!VAR!" == "after" @echo If you see this, it worked
)
如何开启 “延迟变量展开”?
This support is always disabled by default, but may be enabled/disabled via the /V command line switch to CMD.EXE. See CMD /?
- 环境变量字符串替换
SET foo=helloworld
ECHO %foo:hello=% // world
ECHO %foo:hello=love% // loveworld
- 环境变量子字符串
SET foo=helloworld // 前面是起始索引,后面是长度
ECHO %foo:~,% // h,index=0, length=1
ECHO %foo:~-% // ld,意思是 index=-2=length(helloworld)-2=8, length未指定就是指取到最后面
ECHO %foo:,-% // helloworl, 意思是 index=0, length=length(helloworld)-1=9
Windows bat 学习(高级)的更多相关文章
- Windows bat 学习(初级)
http://steve-jansen.github.io/guides/windows-batch-scripting/part-1-getting-started.html 注释:REM 或 :: ...
- windows bat脚本编写
windows批处理 (cmd/bat) 编程详解 开始之前先简单说明下cmd文件和bat文件的区别:在本质上两者没有区别,都是简单的文本编码方式,都可以用记事本创建.编辑和查看.两者所用的命令行代码 ...
- Windows bat脚本的for语句
Windows bat脚本的for语句基本形态如下: 在cmd窗口中:for %I in (command1) do command2 在批处理文件中:for %%I in (command1) do ...
- 最全的Windows Azure学习教程汇总
Windows Azure 是微软基于云计算的操作系统,能够为开发者提供一个平台,帮助开发可运行在云服务器.数据中心.Web 和 PC 上的应用程序. Azure 是一种灵活和支持互操作的平台,能够将 ...
- Windows bat with adb
/********************************************************************* * Windows bat with adb * 说明: ...
- Bash On Windows的学习
Bash On Windows的学习 Bash On Windows的卸载 删除软件和设置:在 cmd 运行lxrun /uninstall 删除所有文件:在cmd中运行lxrun /uninstal ...
- 【记录一次windows技术学习】使用笔记本DOS命令搭建WLAN热点
[记录一次windows技术学习]使用笔记本DOS命令搭建WLAN热点 时间:2017-10-14 22:36:13 撰写者:AK末影人 [转发请注明出处] --------------------- ...
- Windows BAT 命令下del 与 rd 命令
https://blog.csdn.net/jigetage/article/details/81180757 RD 与 DEL 命令 windows bat 目录和文件的删除处理. 命令:RD,删除 ...
- 在 Windows 中为高级用户配置 IPv6 的指南
在 Windows 中为高级用户配置 IPv6 的指南 适用于: Windows 10, version 1809Windows Server 2019, all versionsWindows Se ...
随机推荐
- anoconda 神经网络 相关操作
1. conda 相关操作 建立新环境:conda crearte -n NewName python=版本(3.6) 激活环境:conda activate NewName 关闭环境:conda d ...
- 实训四(cocos2dx sharesdk集成-1)
随着项目的进行,好像陷入的技术优先的迷局,对那些可以实现的功能,代码的编写上越来越漫不经心,反而对没有掌握的技术求之若渴,不免显得有些好高骛远.在没有掌握之前,思考.学习.交流也是一种快乐与享受. 言 ...
- 四则运算APP最后阶段
四则运算APP最后阶段 [开发环境]:eclipse [开发项目]:小学生四则运算APP [开发人员]:郑胜斌 http://www.cnblogs.com/zsb1/ 孔德颖 http://www. ...
- MyBatis传入多个参数的问题(转)
一.单个参数: public List<XXBean> getXXBeanList(String xxCode); <select id="getXXXBeanList&q ...
- Memcache 优化建议
一.memcached工作原理 基本概念:slab,page,chunk. slab,是一个逻辑概念.它是在启动memcached实例的时候预处理好的,每个slab对应一个chunk size,也就是 ...
- delphi执行查询语句时的进度条怎么做
procedure TForm1.FormCreate(Sender: TObject); begin ADOQuery1.ExecuteOptions := [eoAsyncFetch]; ...
- Delphi窗体部分属性
Align属性:控制窗体显示时的对齐方式(注:是相对于父窗体的对齐方式.如果该窗体是主窗体则没有父窗体)(与anchor不同在于,anchor定义的对齐是固定到边界的距离) 默认值为alNone.其他 ...
- BOM之screen对象
前面的话 screen对象在javascript编程中,比较冷门,不太常用.screen对象用来表明客户端的能力,其中包括浏览器窗口外部的显示器的信息,如像素高度和宽度等.本文将详细介绍screen对 ...
- BZOJ2169 连边(动态规划)
令f[i][j]表示连i条边时奇点个数为j的方案数,转移时讨论两奇点相连.一奇一偶相连.两偶点相连即可.注意这样会造成重边,那么算出恰好有一条重边的方案数并减掉.由于是有序地考虑每条边,每次还要除以i ...
- 【BZOJ1414】[ZJOI2009]对称的正方形(哈希)
[BZOJ1414][ZJOI2009]对称的正方形(哈希) 题面 BZOJ 洛谷 题解 深思熟虑一波,发现一个矩阵如果左右对称的话,那么它每行都是一个回文串,同理,如果上下对称的话,那么每列都是一个 ...