批处理替换txt内容
答案:3 悬赏:50 手机版
解决时间 2021-02-02 18:45
- 提问者网友:流星是天使的眼泪
- 2021-02-02 06:01
我有100个txt,命名方式1.txt,2.txt,3.txt,4.txt......100.txt。要求,处理方式:1.txt的内容每一行出现的第一个(字符内容)“101”更改为(数值)1 x 12;同理:2.txt的内容每一行出现的第一个“101”更改为2 x 12;。。。。。。以此类推:100.txt的内容每一行出现的第一个“101”更改为100 x 12。求大神赐一份批处理的代码,注释清晰。
最佳答案
- 五星知识达人网友:未来江山和你
- 2021-02-02 07:10
PowerShell——测试前备份源文件
1. 保存为ps1扩展名文件,右键单击脚本,以powershell运行
2. 未对powershell进行过设置的,可以管理员身份运行CMD,复制以下命令到命令提符 以解除脚本限制
powershell -c "set-executionpolicy unrestricted"3. WIN10以下系统如出错,可能需要去微软官网下载补丁升级powershell
$ScDir="E:\DCOPY\test" #设置TXT文件所在目录
Get-ChildItem -Path "$ScDir" -Recurse -Filter *.txt|ForEach-Object{ #扫描目录下所有TXT文件
$var=$_.BaseName+' x 12';$str=$null;
#读取每个文档,对其进行替换操作
Get-Content -Path $_.FullName|ForEach-Object{$str=-join($str,($_ -replace '101(.*)',-join($var,'$1')),"`r`n");}
$str|Out-File -FilePath $_.FullName #输出结果到源文件
}
1. 保存为ps1扩展名文件,右键单击脚本,以powershell运行
2. 未对powershell进行过设置的,可以管理员身份运行CMD,复制以下命令到命令提符 以解除脚本限制
powershell -c "set-executionpolicy unrestricted"3. WIN10以下系统如出错,可能需要去微软官网下载补丁升级powershell
$ScDir="E:\DCOPY\test" #设置TXT文件所在目录
Get-ChildItem -Path "$ScDir" -Recurse -Filter *.txt|ForEach-Object{ #扫描目录下所有TXT文件
$var=$_.BaseName+' x 12';$str=$null;
#读取每个文档,对其进行替换操作
Get-Content -Path $_.FullName|ForEach-Object{$str=-join($str,($_ -replace '101(.*)',-join($var,'$1')),"`r`n");}
$str|Out-File -FilePath $_.FullName #输出结果到源文件
}
全部回答
- 1楼网友:洒脱疯子
- 2021-02-02 09:19
这么晚这么冷
我倒是会
- 2楼网友:狂恋
- 2021-02-02 08:06
在批处理文件里面使用set 命令设定特定文本文件里面的相关str的内容。
下面是具体的一些例子:
==================================================
举例,现有文本文件a.txt:
a.txt
------
helloo bat !
helloo china !
helloo world !
helloo bat , helloo china , helloo world ~!!!
------
要使用批处理程序将 a.txt 中出现的每个 helloo 都替换为 hello:
@echo off
(for /f "delims=" %%i in (a.txt) do (set str=%%i
setlocal enabledelayedexpansion
set str=!str:helloo=hello!
echo !str!
endlocal
))>1.txt
start 1.txt
pause>nul
===============================================
1.批处理写入文本
请把以下代码拷贝到一个txt文件中,并另存为以.bat为后缀名的批处理文件,名字随便填写,并在该批处理文件所在目录新建一个名字为qq的文本文件,双击运行批处理,写入你想往txt文件中写入的内容并敲击回车即可讲内容写入qq.txt
@echo off
set /p user=请输入内容:
echo %user%>qq.txt
===============================================
2.批处理逐行读取文本内容
请把以下代码拷贝到一个txt文件中,并另存为以.bat为后缀名的批处理文件,名字随便填写,并保证qq.txt文本文件与该批出位于同一个目录,然后双击运行该批处理即可看到读取的文本内容。
@echo off & setlocal enabledelayedexpansion
set j=0
for /f "delims=""" %%i in (qq.txt) do (
set /a j+=1
set con!j!=%%i
call set a=%%con!j!%%
echo !a!
)
pause
================================================
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯