[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理怎样替换TXT文本里面的关键内容为文件名?

修改TXT文本里面的部分指定内容(如我爱你)多处为各文件的文件名(如123456789等等),小木大师的代码,运行后,发现修改了别的文件内容,有没有代码可以做到像单个文件查找替换的效果.

  1. ls *.txt|%{$(((gc $_ -readcount 0) -join "`r`n") -replace '关键内容',"$($_.name)")|sc $($_.basename + '-new' + $_.Extension) -enc Default}
复制代码

TOP

把你试过的代码发出来看看哪里没写对
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. @Echo Off
  2. SetLocal EnableDelayedExpansion
  3. For %%i In (*.txt) Do (
  4.     For /F "Usebackq Delims=" %%j In ("%%~nxi") Do (
  5.         Set Str=%%j
  6.         Echo !Str:我爱你=%%~ni!>>New_%%~nxi
  7.     )
  8.     Del %%~nxi >nul
  9.     Ren New_%%~nxi %%~nxi
  10. )
复制代码
回复 3# Batcher

TOP

回复 4# 一心她爸


    只修改一个文件是吗?把第3行的*.txt改成文件名
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

请问您给的代码是怎么用的?我试了,没有效果回复 2# xczxczxcz

TOP

修改3千个以内

TOP

回复 5# Batcher
例如附件的文件,将我爱你替换为文件名,需要批量操作

TOP

回复 8# 一心她爸


    4楼代码处理这个文件会导致什么问题?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 9# Batcher 用excel匹配,发现346行的空白行给清除了,其他的变化,还没发现

TOP

回复 6# 一心她爸


2楼是PowerShell代码,执行方式请参考:
http://bbs.bathome.net/thread-31071-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

借用2楼代码

本帖最后由 yhcfsr 于 2019-1-25 16:21 编辑

回复 2# xczxczxcz
WIN10
  1. @echo off
  2. 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}}"
  3. pause
复制代码
WIN7系统
  1. @echo off
  2. 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}}"
  3. pause
复制代码
QQ 33892006

TOP

返回列表