DOS命令基础:echo、变量、函数、set、字符串截取

2023-05-16

echo命令

echo显示当前ECHO设置状态

echo.输出空行,即相当于输入一个回车,echo后面的点要紧挨一起,中间不能有空格,后面的点可以用,:;/[ \ ]+等任一符号替代。即:下面的命令都是输出空行:

 echo.
 echo,
 echo:
 echo;
 echo/
 echo\
 echo[
 echo]
 echo+

echo 文字,输出设置的文字内容


@符号隐藏后面的执行指令


函数:
函数以一个标签开始,并以goto:eof结束


函数怎么工作
调用函数的脚本将其分成两部分。
1.main script: 从第一行开始并且以 GOTO:EOF命令结束
2.函数部分:由多个函数组成,由main script调用。



编写带参数的函数
采用%1~%9来代表参数的值。而%0表示批处理文件本身,当然,如果传递的参数是“xxx”形式,而要获取的参数值为xxx,则需要使用%~1形式的参数。

:myFunction
echo it could do %~1 of things %~2
goto:eof
调用时给函数传参
(参数直接放在函数后面,用空格或逗号分隔)
1.用空格或者逗号将参数分开
2.用双引号将带有空格的字符串参数括起来
call:myDosFunc 100 YeePEE 
call:myDosFunc 100 "for me" 
call:myDosFunc 100,"for me"
传参实例:
@echo off
call:myFunction 100 hello
call:myFunction 100,hello
call:myFunction 100,"hello"
call:myFunction 100 "hello world"
echo.&pause&goto:eof

:myFunction
echo.
echo it could do %1 of things %2
echo it could do %~1 of things %~2
goto:eof


环境变量
在dos中直接输入 set会输出所有的本地环境变量

变量的设置与引用
调用函数后不像其他语言那样能有返回值,最常用的做法是先用set定义一个 全局变量,然后在函数中使用该全局变量并将需要的值保存在全局变量中
直接用该全局变量。

SET命令设置变量,用 %xy%引用变量xy
@echo off
set var=hello world
echo %var%
pause
交互式的变量(set /p
让用户自己输入变量的值,然后我们在来根据这个值来做相应操作
set /p 变量名=提示语


表达式类型的变量(set /a
set /a var=2 - 1
set /a var=2 * 2
set /a var=2 / 2
set /a var=(1+1) + (1+1) 
set /a a=1+1,b=2+1,c=3+1
set /a var+=1
set /a var*=2
运算符
() 分组
! ~ - 一元运算符
* / % 算数运算符
+ - 算数运算符

= *= /= %= += -= 赋值
&= ^= |= <<= >>= 表达式分隔符

对于逻辑或取余操作符,使用的时候需要添加引号才能正常使用,否则报错
<< >> 逻辑移位
& 按位“与”
^ 按位“异”,非
| 按位“或”



字符串替换(=
%PATH:str1=str2%这个操作就是把变量%PATH%里的str1全部用 str2替换
实例:

@echo off
set a=www.baidu.com
echo 替换前的值:%a%
set b=%a:.=点%
echo 替换后的值:%b%
pause


字符串截取(~
@echo off
set a=www.baidu.com
echo 替换前的值:%a%

set b=%a:.=点%
echo 替换后的值:%b%

::从下标1对应的位置开始,截取4位字符(下标从0开始)
set c=%b:~1,4%
echo %c%

::从第2位开始截取,截止倒数第4位
set f=%b:~1,-4%
echo %f%

::截取3对应的下标到末尾的字符
set e=%b:~3%
echo %e%

::截取-3对应的下标到末尾的字符,即倒数3位
set d=%b:~-3%
echo %d%

echo.
pause



截取的作用


函数的局部变量
局部变量放在SETLOCALENDLOCAL之间定义。
SETLOCAL可以很好的保护函数内与外面的变量不会冲突。即:

setlocal
set var1=xxx
set var2=xxx
endlocal


 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DOS命令基础:echo、变量、函数、set、字符串截取 的相关文章

  • 音视频开发入门基础知识(视频入门篇)

    RTSP实时音视频开发实战课程 xff1a lt RTSP实时音视频开发实战 gt 音视频开发入门基础知识 xff08 音频入门篇 xff09 目录 一 前言 二 视频采集和显示 三 视频常见的格式 四 RGB转YUV和YUV转RGB 五
  • Rust 类型、泛型和特征

    Rust 创建泛型 generic function rs fn give me lt T gt value T let 61 value fn main let a 61 34 generics 34 let b 61 1024 give
  • Vmware虚拟机硬盘扩容: Linux下虚拟机硬盘空间扩展及挂载配置

    都是自己使用过程中的小经验 xff0c 分享给大家 希望能互相帮助 进入正题 xff1a 大家是不是会遇到最初分配linux虚拟机硬盘后期不够用的情况 xff0c xff08 因为是我之前用友善之臂的虚拟机配ARM板学习 xff0c 只有2
  • 数据结构之冒泡排序

    文字描述 xff08 以升序为例 依次比较数组中相邻两个元素大小 xff0c 若a i gt a 43 1 xff0c 则交换两个元素 xff0c 两两都比较一遍称为一轮冒泡 xff0c 结果是让最大的元素排至最后重复以上步骤 xff0c
  • 十进制转八进制的方法

    include lt stdio h gt int main int n printf 34 请输入一个十进制的数 xff1a 34 scanf 34 d 34 amp n int i 61 0 int arr 100 while n 61
  • Nodejs之目录介绍及app.js说明

    随时随地阅读更多技术实战干货 xff0c 获取项目源码 学习资料 xff0c 请关注源代码社区公众号 ydmsq666 转自 xff1a https www cnblogs com Chen xy p 4466351 html nodejs
  • 源码学习笔记之Openssl

    目录 xff1a apps apps c apps h app rand c asn1pars c build info ca cert srl ca key pem ca req pem ca c CA pl in cert pem ci
  • Segmentation Fault错误原因总结

    一 什么是 Segmentation fault in Linux 所谓的段错误就是指访问的内存超过了系统所给这个程序的内存空间 通常这个值是由gdtr来保存的 他是一个48位的寄存器 其中的32位是保存由它指向的gdt表 后13位保存相应
  • 树莓派使用MobaXterm实现SSH和VNC

    树莓派使用MobaXterm实现SSH和VNC terminal推荐 xff1a MobaXterm 一 开机SSH无线连接 前提 xff1a 树莓派和PC在同一局域网下 xff0c 通过路由器获得树莓派ip 打开ssh boot目录新建文
  • 【Qt】QtCreator远程部署、调试程序

    1 添加远程设备 1 QtCreator 工具 gt 选项 gt 设备 gt 添加 2 设备设置向导选择 gt Generic Linux Device gt 开启向导 3 填写 标识配置的名称 随便写 设备IP 用户名 gt 下一步 4
  • Debian备份与还原

    备份 xff1a sudo su cd tar cvpzf backup tgz exclude 61 proc exclude 61 lost 43 found exclude 61 backup tgz exclude 61 mnt e
  • 微信开放平台-第三方平台开发配置及常见的问题

    目录 概述 参考文档 开源项目 amp 工具 第三方平台设置 问题及解决方法 概述 本实例 xff1a 第三方平台 43 微信公众号 xff08 服务号 xff09 微信开放平台 第三方平台 xff0c 为广大公众号和小程序提供运营服务和行
  • 【Python包管理系列1】python打包发布到PyPI全过程(入门版)

    文章目录 目的准备知识PyPIPyPAsetuptoolsbuildtwine 实战过程总结 目的 如果发布一个python包到pypi上 xff0c 共他人使用 xff0c 本文试图讲清楚 准备知识 PyPI 官网地址 xff1a htt
  • Web自动化测试(二)—— Selenium-API操作

    其他Web测试知识参考 xff1a Web自动化测试 目录 一 元素定位 1 如何进行元素定位 xff1f 2 浏览器开发者工具 2 1 如何使用浏览器开发者工具 二 元素定位方式 1 id定位 2 name定位 3 class name定
  • Java中字符串中子串的查找共有四种方法(indexof())

    亲测可用 xff0c 若有疑问请私信 indexOf 方法返回一个整数值 xff0c 指出 String 对象内子字符串的开始位置 如果没有找到子字符串 xff0c 则返回 1 如果 startindex 是负数 xff0c 则 start
  • 使用rust构建一个js引擎

    转载于 https my oschina net lilugirl2005 blog 3067895
  • Linux下使用acme.sh 配置https 免费证书

    acme sh 简单来说acme sh 实现了 acme 协议 可以从 let s encrypt 生成免费的证书 acme sh 有以下特点 xff1a 一个纯粹用Shell xff08 Unix shell xff09 语言编写的ACM
  • iOS 性能优化之内存优化

    近四年没更CSDN了 xff0c 感慨万千 近年来在搞一款比较大的APP xff0c 项目中代码量100w 43 xff0c 里面使用的三方库 其他领域的二进制包比较多 xff1b 以前这些三方 二进制都挤在同一个工程目录下 xff0c 导
  • 内核升级和降级

    查看已安装的内核 sudo dpkg get selections grep linux 不一样的系统版本升级内核要装的东西对应也不一样 xff0c 需要根据 get selections 安装对应的内核组件 使用apt get 即可完成安
  • Docker: Debian安装Docker

    Debian安装Docker 内容由 网络搜罗整理而来 xff0c 记录与共享 一 APT安装 官方Debian存储库中提供的Docker安装包可能不是最新版本 为了确保我们获得最新版本 xff0c 我们将从官方Docker存储库安装Doc

随机推荐

  • CodeBlocks快捷键

    原文地址 xff1a https blog csdn net lxt lucia article details 79572829 一 汇总 1 编辑部分 xff1a 按住Ctrl xff0c 滚动鼠标滚轮 xff0c 放大或缩小字体 Ct
  • ubuntu 操作系统的目录结构

    Ubuntu 系统的目录众多 xff0c 但是所有的目录都是在 目录下面的 xff0c 并且 Ubuntu 系统是不分 C 盘 D 盘等的 那么 Ubuntu 系统的这些目录具体有哪些呢 xff1f 他们的作用分别是什么呢 xff1f 下面
  • ubuntu安装和查看已安装

    说明 xff1a 由于图形化界面方法 xff08 如Add Remove 和Synaptic Package Manageer xff09 比较简单 xff0c 所以这里主要总结在终端通过命令行方式进行的软件包安装 卸载和删除的方法 一 U
  • CloudKitty安装指导

    安装以下几个模块 xff1a cloudkitty api API service cloudkitty processor Processing service collecting and rating cloudkitty dbsyn
  • Release file for http://xxx/ubuntu/dists/bionic-updates/InRelease is not valid yet报错解决

    参考 https blog 51cto com 5437315 2420097 中说明的原因 原因 xff1a 系统时间与网络时间 xff08 仓库 xff09 的不同导致更新错误 按照这个原因解释 xff0c 我查看了自己虚拟机内ubun
  • Android平台下的图片/视频转Ascii码图片/视频 (二)

    忙里偷闲又来写一篇文章 xff0c 最近在更新一些好玩的图片算法 xff0c 当然也没落下优化ascii码的图像效果 xff0c 这次我将更换一种计算ascii码的方式 xff0c 这样能更好的添加一些效果 xff0c 并且更加清楚的讲解一
  • usage: conda-script.py [-h] [-V] command ... conda-script.py: error: the following arguments are re

    网上看到很多修改condarc文件的说法 xff0c 各有分说 xff0c 各有办法 xff0c 但又不统一 实际上就是你的tensorflow版本不行 https mirrors tuna tsinghua edu cn anaconda
  • github文件下载慢的完美解决方案

    经常光顾github的程序猿朋友有可能面临这样的问题 xff0c 公司或者家里的网速不给力或者 xff0c 宽带运营商比较渣渣 xff08 笔者的宽带是北京宽带通 xff0c 对 就是长城宽带 xff0c 访问国外这种没被墙的网站慢的一匹
  • Java多态实现原理

    Java多态概述 多态是面向对象编程语言的重要特性 xff0c 它允许基类的指针或引用指向派生类的对象 xff0c 而在具体访问时实现方法的动态绑定 Java 对于方法调用动态绑定的实现主要依赖于方法表 xff0c 但通过类引用调用 inv
  • Class文件内容及常量池

    当JVM运行Java程序的时候 xff0c 它会加载对应的class文件 xff0c 并提取class文件中的信息存放在JVM开辟出来的方法区 内存中 那么这个class文件里面到底有些什么内容呢 xff1f 一 class文件内容概述 c
  • 解决Multiple dex files define Landroid/support/v4/accessibilityservice的问题

    Error Execution failed for task 39 DeviceManage transformClassesWithDexForDebug 39 gt com android build api transform Tr
  • pyecharts 图表 将 Html 文件转成图片

    使用 pyecharts 生成图表是非常方便的 xff0c 而且官方文档也特别详细 xff0c 可以满足基本全部的图表需求 但是生成后的图表默认是 html 文件 当需要发送邮件时 xff0c html 文件放在邮件附件 xff0c 邮件里
  • Ceph集群安装

    一 准备工作 xff1a 首先会帮你准备一个 ceph deploy 管理节点 以及三个Ceph 节点 xff08 或虚拟机 xff09 xff0c 以此构成 Ceph 存储集群 以下步骤中admin node为管理节点 xff0c nod
  • open-falcon-小米监控工具

    根据资源消耗特点 高可用要求等 xff0c 可以尝试做一些混合部署 比如 xff1a transfer amp graph amp judge是Open Falcon的三大件 xff0c 承受的压力最大 资源消耗最大 但彼此间又不冲突 xf
  • Mysql多实例+主从复制

    一 安装并启动 xff1a yum install mariadb server mysql mysql server mysql libs y systemctl start mariadb service 设置密码 xff1a mysq
  • 部署Openstack报错及解决办法

    1 nova image show 报错500 yum downgrade python urllib3 版本1 10 yum downgrade python requests 版本2 7 2 http启动报错 cp usr share
  • centos安装Discuz!X3.4 报错mysqli_connect()不支持advice_mysqli_connect解决

    Centos安装Dicus报错 mysqli connect 不支持advice mysqli connect解决办法 原因是因为缺少php mysql组件 xff1b 执行yum install php mysql 会安装php pdo和
  • 修复xrdp永不消逝的窗口:Authentication Required: Authentication is required to create a color managed device

    这个窗口永远不消失 xff0c 也无法编辑 试了网上很多方法对于我的ubuntu20 04系统都无效 xff0c 如 xff1a 添xrdp 远程登录需要输入很多次密码 一次偶然的机会在修复跑程序发现的这个bug时 xff1a Import
  • Android串口通信:抱歉,学会它真的可以为所欲为

    引言 xff1a 之所以写这篇文章 xff0c 一方面是最近工作中对Android串口通信方面学习的总结 另外一方面也希望能够帮助到大家 xff0c 能够简单的去理解串口通信方面的知识 为什么学习Android串口通信 xff1a 距离20
  • DOS命令基础:echo、变量、函数、set、字符串截取

    echo命令 xfeff xfeff echo 显示当前ECHO设置状态 xff1b echo 输出空行 xff0c 即相当于输入一个回车 xff0c echo后面的点要紧挨一起 xff0c 中间不能有空格 xff0c 后面的点可以用 xf