首页
windows
驱动
往windows镜像中添加驱动
集成驱动与补丁到Windows7的ISO文件
禁用Win系统自动更新驱动
Windows Service 中安装网卡驱动
office
excel中的函数
Win故障处理
win10文件夹右键菜单转圈圈假死
内存占用很高
激活许可
kms激活
office删除授权
KMS38
MAS开源激活脚本
解除网页禁止复制
封装win10系统
封装系统工具
DISM命令常见用法
封装win10-U盘安装系统
封装win10-U盘安装系统2--sysprep封装后的自动化
Win镜像文件iso添加补丁包
WDS+MDT自动装机
ISO镜像中的install.esd转为install.wim
Win实用工具
微软官方-网络数据收集NetMon
微软官方工具
Win下查看文件被哪个进程占用
Everything 的文件索引、HTTP共享
文件转换器File Converter
恢复电脑上删除的文件
查看桌面弹窗广告是哪个应用-ProcessExplorer
Win-网络
获取网卡的接口号
Win下查看端口被哪个进程占用
方便的编辑切换hosts文件OpenArk
win10中用curl或PowerShell调用HTTP post 接口
从windows获取连接的USB设备列表_python或cmd
检测硬件信息
显卡压力测试
bat压缩文件夹并备份到smb共享
bat脚本中使用WinSCP命令备份linux中文件
WinScp命令行下载脚本(示例代码)
Win10下用系统自带SCP命令免密码上传、下载centos服务器上的文件
Win笔记
win10查看设备序列号、硬盘序列号、硬盘ID
Windows 系统下 MD5 值计算方法
Windows 关闭显示命令
Win中查看进程名称、使用的端口
Win10命令行中查看wifi密码
查看、杀掉进程
用CMD弹出提示框
Windows软件静默安装
WDS跨网段配置_网络
Windows修改静态路由表和跃点数
bat脚本映射共享文件夹为盘符
win中备份文件到阿里对象存储 OSS
Windows管理工具命令行Wmic
Win10自动修复失败,你的电脑未正确启动
TCP端口ping命令_psping
bat脚本
BAT批处理中的字符串处理
获取本机ip和ping网关
统计win共享文件夹内哪些用户有权限
bat脚本——for循环用法
BAT脚本之判断文件是否存在
bat笔记
bat方式实现企业微信群机器人告警
bat脚本检测USB设备掉线时企微告警
Bat脚本日期时间获取
Win中检查某一进程是否存在
if和errorlevel
goto和call
bat中修改计算机名为sn号
批处理- 内置环境变量ERRORLEVEL
bat修改host文件
本文档由 内网文摘 发布,转载请注明出处
-
+
首页
BAT批处理中的字符串处理
### 字符串查找 #### 1.字符串查找:find ping baidu.com -4 -n 1 | find "baidu.com" #### 2.字符串查找增强:findstr findstr类似Linux中的grep cmd中使用 `ping baidu.com -4 -n 1 | findstr "baidu.com"` ```bash C:\Users\local>ping baidu.com -4 -n 1 | findstr "baidu.com" 正在 Ping baidu.com [220.181.38.251] 具有 32 字节的数据: C:\Users\local> ``` bat脚本中使用 `ping baidu.com -4 -n 1 ^| findstr "baidu.com"`,其中`|`要用转义字符`^` ^|findstr /n .^|findstr "^1:" 第一个和第二个 ^| 因为在for循环的('')中,|要用转义字符^ 第三个"^1:" 在findstr的参数中查找字符用^表示以后面紧跟的字符开头,也就是以1:开头的行. ### 截取字符串 ```bash @echo off set ifo=abcdefghijklmnopqrstuvwxyz0123456789 echo 原字符串(第二行为各字符的序号): echo %ifo% echo 123456789012345678901234567890123456 echo 截取前5个字符: echo %ifo:~0,5% echo 截取最后5个字符: echo %ifo:~-5% echo 截取第一个到倒数第6个字符: echo %ifo:~0,-5% echo 从第4个字符开始,截取5个字符: echo %ifo:~3,5% echo 从倒数第14个字符开始,截取5个字符: echo %ifo:~-14,5% pause ``` 当然,上面的例子只是将字符串处理的基本功能展示出来了,还看不出字符串处理具体有什么用处。下面这个例子是对时间进行处理。 `echo 当前时间是:%time% 即 %time:~0,2%点%time:~3,2%分%time:~6,2%秒%time:~9,2%厘秒` ```bash C:\Users\local>echo 当前时间是:%time% 即 %time:~0,2%点%time:~3,2%分%time:~6,2%秒%time:~9,2%厘秒 当前时间是:15:49:08.70 即 15点49分08秒70厘秒 ``` ### 替换字符串 替换字符串,即将某一字符串中的特定字符或字符串替换为给定的字符串。举例说明其功能: ```bash @echo off set aa=伟大的中国!我为你自豪! echo 替换前:%aa% echo 替换后:%aa:中国=中华人民共和国% echo aa = %aa% set "aa=%aa:中国=中华人民共和国%" echo aa = %aa% pause ``` 对于上面的例子有一点说明,对比两个echo aa = %aa%可以发现,如果要修改变量aa的内容的话,就需要将修改结果“%aa:中国=中华人民共和国%”赋值给变量aa。上面的字符串截取也有着同样的特点。 ### 字符串合并 ```bash set aa=伟大的中国! set bb=我为你自豪! echo %aa%%bb% #伟大的中国!我为你自豪! echo aa=%aa% #a=伟大的中国! echo bb=%bb% #bb=我为你自豪! set "aa=%aa%%bb%" echo %aa% #伟大的中国!我为你自豪! ``` ### 扩充字符串 “扩充”这个词汇来自于微软自己的翻译,意思就是对表示文件路径的字符串进行特殊的处理,具体功能罗列如下: ```bash ========================================= ~I - 删除任何引号("),扩充 %I %~fI - 将 %I 扩充到一个完全合格的路径名 %~dI - 仅将 %I 扩充到一个驱动器号 %~pI - 仅将 %I 扩充到一个路径 %~nI - 仅将 %I 扩充到一个文件名 %~xI - 仅将 %I 扩充到一个文件扩展名 %~sI - 扩充的路径只含有短名 %~aI - 将 %I 扩充到文件的文件属性 %~tI - 将 %I 扩充到文件的日期/时间 %~zI - 将 %I 扩充到文件的大小 %~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩充 到找到的第一个完全合格的名称。如果环境变量名 未被定义,或者没有找到文件,此组合键会扩充到 空字符串 可以组合修饰符来得到多重结果: %~dpI - 仅将 %I 扩充到一个驱动器号和路径 %~nxI - 仅将 %I 扩充到一个文件名和扩展名 %~fsI - 仅将 %I 扩充到一个带有短名的完整路径名 %~dp$PATH:i - 查找列在路径环境变量的目录,并将 %I 扩充 到找到的第一个驱动器号和路径。 %~ftzaI - 将 %I 扩充到类似输出线路的 DIR ========================================= ``` 以上内容引用于for /?帮助信息。其中的I代表变量I,不过需要说明的是,不是所有的变量都能够进行扩充的,有两个条件:1、该字符串代表一个文件路径;2、变量要用%x来表示,x可取a-z A-Z 0-9共62个字符中的任意一个。举例说明: ```bash @echo off echo 正在运行的这个批处理: echo 完全路径:%0 echo 去掉引号:%~0 echo 所在分区:%~d0 echo 所处路径:%~p0 echo 文件名:%~n0 echo 扩展名:%~x0 echo 文件属性:%~a0 echo 修改时间:%~t0 echo 文件大小:%~z0 pause ``` 其中的%0是批处理里面的参数,代表当前运行的批处理的完全路径。类似的还有%1-%9,分别代表传递来的第1-9个参数。例子如下: ```bash @echo off set aa=C:\Windows\PPP\a.btx call :deal aaa %aa% "c c" ddd eee pause>nul exit :deal echo %%0 = %0 echo %%1 = %1 echo %%2 = %2 echo %%3 = %3 echo %%4 = %4 echo %%5 = %5 ``` 其中,变量aa在之前是不可以扩充的,通过call命令并将aa作为参数传递给子函数:deal,将aa变量转换成了变量%1,即符合%x格式,从而可以进行字符串扩充。 至于%x中x取a-z A-Z的形式,可以复习一下for语句,for语句里面的变量就是用%x来表示的,因而可以直接进行扩充。 参考文章:https://www.jb51.net/article/52744.htm
local
2022年11月10日 08:13
分享文档
收藏文档
上一篇
下一篇
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
关于 LocalNetwork
LocalNetwork
是由mrdoc开源
LocalNetwork.cn
修改的在线文档系统,作为个人和小型团队的云笔记、文档和知识库管理工具。
如果此文档给你或你的团队带来了帮助,欢迎支持作者持续投入精力更新和维护!内网文摘 & LocalNetwork
>>>主页
logo
logo
下载Markdown文件
分享
链接
类型
密码
更新密码