BAT批处理文本替换
BAT批处理方式进行文件的字符串搜索替换
在matlab提取txt中的实验数据,由于记录原因,传感器出错后把数字存为了nan,对于提取数据很不方便。
于是查了查如何批处理对txt文本进行替换。
CMD/BAT 批处理的方式,进行文件的字符串搜索替换工作,参考博客
@echo off
setlocal EnableDelayedExpansionset "CurrCD=%~dp0"
set "strOld=aaaaa"
set "strNew=zzzzz":: 将当前目录(包括子目录)下的所有 TXT 文本中的 aaaaa 替换为 zzzzz
for /f %%i in ('dir /b /s /a:-d *.txt') do (powershell -Command "(gc %%i) -replace '%strOld%', '%strNew%' | Out-File -Encoding ANSII %%i"
)
基本语法解释:
在cmd中输入 命令 /?
可显示此命令的帮助信息
@echo off: 此语句常用于开头,表示不显示所有的命令行信息,包括此句
set :
SET [variable=[string]]variable 指定环境变量名。string 指定要指派给变量的一系列字符串。
for循环的基本格式
FOR %%variable IN (set) DO command [command-parameters]%%variable 指定一个单一字母表示可替换的参数。(set) 指定一个或一组文件。可以使用通配符。command 指定对每个文件执行的命令。command-parameters 为特定命令指定参数或命令行开关。
参数:FOR有4个参数 /d /l /r /f
FOR /D %%variable IN (set) DO command [command-parameters]
含义:如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。
FOR /D %%variable IN (set) DO command [command-parameters]
含义:如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。
FOR /R [[drive:]path] %%variable IN (set) DO command [command-parameters]
含义:检查以 [drive:]path 为根的目录树,指向每个目录中的FOR 语句。如果在 /R 后没有指定目录,则使用当前目录。如果集仅为一个单点(.)字符,则枚举该目录树。
FOR /L %%variable IN (start,step,end) DO command [command-parameters]
含义:该集表示以增量形式从开始到结束的一个数字序列。因此,(1,1,5) 将产生序列 1 2 3 4 5,(5,-1,1) 将产生序列 (5 4 3 2 1)。
/F 迭代及文件解析
使用文件解析来处理命令输出、字符串及文件内容。使用迭代变量定义要检查的内容或字符串,并使用各种options选项进一步修改解析方式。使用options令牌选项指定哪些令牌应该作为迭代变量传递。请注意:在没有使用令牌选项时,/F 将只检查第一个令牌。
文件解析过程包括读取输出、字符串或文件内容,将其分成独立的文本行以及再将每行解析成零个或更多个令牌。然后通过设置为令牌的迭代变量值,调用 for 循环。默认情况下,/F 传递每个文件每一行的第一个空白分隔符号。跳过空行。
dir命令
参考博客
/s 查找当前目录以及所有子目录下的文件
/b 舍弃标题与摘要内容
/d 跟宽式相同,但文件是按栏分类列出的。
/n 长列表格式 即 竖立格式 与光杆dir 下无异
/b /a:d 指定显示所有具有该属性的文件
/b /d&/w 交互使用时,/d&/w 开关 无效。
/q 显示文件所有权信息、或者说文件所有者信息
/w 宽行格式显示 X轴序列 文件名过长 无效
/d 宽行格式显示 Y轴序列 文件名过长 无效
/d & /w 会在在文件夹的前后添加"[]"X
/l 所显示文件名,全部为小写英文字母。
/c&/-c 禁用文件大小显示千位数分隔符。默认显示分隔符“,” /-c 不显示分隔符。
/a:d 只显示文件夹(包括隐藏文件夹)
/a:h 只显示隐藏文件 (包括具有当前属性的其他三种文件、夹)
/a:r 仅显示只读文件(包括具有当前属性的其他三种文件、夹)
/a:s 仅显示系统文件(包括具有当前属性的其他三种文件、夹)
/a:a 只显示存档文件- - X----- 只显示文件 (包括具有存档属性的其他三种属性文件) 这个命令对应 /a:d 只显示文件夹。 windows中文件共有四种属性、
分别为 存档、只读、系统、隐藏
/O 用分类顺序列出文件。排列顺序 N 按名称(字母顺序) S 按大小(从小到大)E 按扩展名(字母顺序) D 按日期/时间(从先到后)G 组目录优先 - 反转顺序的前缀
逐个解释dir /b /s /a:-d *.txt
/b 舍弃标题与摘要内容
/s 查找当前目录以及所有子目录下的文件
/a:-d 只显示文件不显示文件夹
*.txt 要求仅显示txt文件
编码问题解释:在Out-File后加-Encoding ASNII
即可实现改变输出文本的编码,默认编码为UTF-16 LE
有意思的是,-Encoding utf8
输出编码为带有BOM的utf8
后续继续研究powershell的相关语法和命令
补充:
如何删除包含特定字符串的所有行呢?
@echo off
setlocal EnableDelayedExpansion:: 删除 d:\aaa.txt 中,包含字符串 abc 的所有行
set "FileName=d:\aaa.txt"
set "sDelLine=abc"
powershell -Command "$data = foreach($line in gc %FileName%){ if($line -notlike '*%sDelLine%*') {$line}} $data | Out-File %FileName%"
BAT批处理文本替换相关推荐
- DOS循环:bat/批处理for命令详解之一 (史上虽详尽的总结和说明~~)
DOS循环:bat/批处理for命令详解之一 (史上虽详尽的总结和说明~~) --- --- 前言: 虽然以前对批处理也算有点研究,但一直对for命令理解不够透彻,偶尔用时也是照猫画虎的用一下. 虽然 ...
- bat循环执行带参数_dos命令exit图文教程,结束退出CMD.EXE程序或当前bat批处理脚本...
大家好,我是老盖,首先感谢观看本文,本篇文章做的有视频,视频讲述的比较详细,也可以看我发布的视频. 今天我们学习dos命令中的exit这个命令,退出 CMD.EXE 程序(命令解释器)或当前批处理脚本 ...
- BAT 批处理命令 - 解决cmd控制台中文乱码问题实例演示
BAT 批处理命令支持的是 ANSI 编码,如果用默认的 UTF-8 编码会报错.我们只要把编码改成 ANSI 就行了. 下图是我写了一个有问题的代码.[如果还能发现其它问题可以评论区留言哦!考验一下 ...
- bat 批处理切换到当前脚本所在文件夹
bat 批处理切换到当前脚本所在文件夹 切换到当前脚本所在的文件夹 ? 1 cd %~dp0 另外附上一些bat基本内容 ------------------------------ 批处理常用命令 ...
- bat批处理删除指定N天前的文件
Windows下bat批处理,自动获取文件的最后修改时间,然后将指定多少天之前的文件删除,需要Windows支持forfiles命令,XP及以上系统都自带forfiles命令. 删除指定目录下7天前的 ...
- atitit.加入win 系统服务 bat批处理程序服务的法总结instsrv srvany java linux
atitit.加入win 系统服务 bat批处理程序服务的法总结instsrv srvany java linux 系统服务不同于普通视窗系统应用程式.不可能简简单单地通过执行一个EXE就启动视窗系 ...
- BAT批处理脚本结合SQL应用案例
BAT批处理脚本结合SQL应用案例 本文是BAT(批处理脚本)结合SQL的应用,脚本结合了OSQL(可执行Transact-SQL语句 ).BCP(执行数据导入导出的工具).BLAT(命令行发邮件的工 ...
- bat批处理命令大全_DOS使用环境变量图文教程,bat批处理脚本查看调用环境变量命令...
大家好,我是老盖,首先感谢观看本文,本篇文章做的有视频,视频讲述的比较详细,也可以看我发布的视频. 今天我们学习在DOS和BAT批处理脚本中使用环境变量,环境变量是windows定义的一个变量,它有一 ...
- BAT批处理中的字符串处理详解(字符串截取)
BAT批处理中的字符串处理详解(字符串截取 批处理有着具有非常强大的字符串处理能力,其功能绝不低于C语言里面的字符串函数集.批处理中可实现的字符串处理功能有:截取字符串内容.替换字符串特定字段.合并字 ...
最新文章
- C++知识点31——使用C++标准库(关联容器multimap及其初始化,赋值,查找,添加,删除与迭代器失效)
- 08 - JavaSE之IO流
- MySQL多元复制_MySQL多源复制解决方案
- 图书馆管理系统——超期付款
- 洛谷P3265 装备购买
- 上海java工作经验与薪资_Java硕士京东工作1年,跳槽后他期望薪资26K,大家感觉他可以吗...
- C语言实现简单小游戏
- 开源中国软件频道_编程小黑马
- 462计算机连接错误,金蝶K3始终462错误,怎么处理???????
- STM32神舟III号 驱动直流电机学习(三 )
- PPT转换为PDF后,图片背景变成了黑色的解决方法
- 使用 Git 添加文件时,出现 Warning: LF will be replaced by CRLF in...提示及解决方案
- js-DOM offsetLeft 属性与 offsetTop 属性,制作网页动画等必学知识!
- 基于Java的物资租赁管理系统 MYSQL
- add_months()函数介绍
- mysql安装完后不能配置_安装完 MySQL 后必须调整的 10 项配置
- 网格系统设计方法是什么
- 3D眼镜种类以及原理
- FIFO学习:FIFO深度的计算、通过Verilog实现FIFO以及利用SRAM设计FIFO
- JAVA 发送阿里云短信