标题: [文本处理] 批处理怎样替换TXT文本里面的关键内容为文件名? [打印本页]
作者: 一心她爸 时间: 2019-1-25 09:10 标题: 批处理怎样替换TXT文本里面的关键内容为文件名?
修改TXT文本里面的部分指定内容(如我爱你)多处为各文件的文件名(如123456789等等),小木大师的代码,运行后,发现修改了别的文件内容,有没有代码可以做到像单个文件查找替换的效果.
作者: xczxczxcz 时间: 2019-1-25 10:03
- ls *.txt|%{$(((gc $_ -readcount 0) -join "`r`n") -replace '关键内容',"$($_.name)")|sc $($_.basename + '-new' + $_.Extension) -enc Default}
复制代码
作者: Batcher 时间: 2019-1-25 11:00
把你试过的代码发出来看看哪里没写对
作者: 一心她爸 时间: 2019-1-25 12:41
- @Echo Off
- SetLocal EnableDelayedExpansion
- For %%i In (*.txt) Do (
- For /F "Usebackq Delims=" %%j In ("%%~nxi") Do (
- Set Str=%%j
- Echo !Str:我爱你=%%~ni!>>New_%%~nxi
- )
- Del %%~nxi >nul
- Ren New_%%~nxi %%~nxi
- )
复制代码
回复 3# Batcher
作者: Batcher 时间: 2019-1-25 12:45
回复 4# 一心她爸
只修改一个文件是吗?把第3行的*.txt改成文件名
作者: 一心她爸 时间: 2019-1-25 12:47
请问您给的代码是怎么用的?我试了,没有效果回复 2# xczxczxcz
作者: 一心她爸 时间: 2019-1-25 12:48
修改3千个以内
作者: 一心她爸 时间: 2019-1-25 12:57
回复 5# Batcher
例如附件的文件,将我爱你替换为文件名,需要批量操作
作者: Batcher 时间: 2019-1-25 13:57
回复 8# 一心她爸
4楼代码处理这个文件会导致什么问题?
作者: 一心她爸 时间: 2019-1-25 14:19
回复 9# Batcher 用excel匹配,发现346行的空白行给清除了,其他的变化,还没发现
作者: Batcher 时间: 2019-1-25 15:01
回复 6# 一心她爸
2楼是PowerShell代码,执行方式请参考:
http://bbs.bathome.net/thread-31071-1-1.html
作者: yhcfsr 时间: 2019-1-25 15:53 标题: 借用2楼代码
本帖最后由 yhcfsr 于 2019-1-25 16:21 编辑
回复 2# xczxczxcz
WIN10- @echo off
- powershell -NoLogo -NoProfile -command "& {$files=ls *.txt -r;foreach($file in $files){$content=(type $file -ReadCount 0) -replace '我爱你',$file.BaseName;sc $($file.FullName+'.log') $content -encoding default}}"
- pause
复制代码
WIN7系统- @echo off
- powershell -NoLogo -NoProfile -command "& {$files=ls *.txt -r;foreach($file in $files){$content=(type $file -ReadCount 0) -replace '我爱你',$file.BaseName;sc $($file.FullName+'.log') $content -encoding String}}"
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |