更改多TXT内的单词并保存同名

时间:2018-06-13 00:39:32

标签: windows batch-file cmd

我需要更改单词" EDI"到" INO"在文件夹中的所有TXT文件中,但保存文件夹的相同名称。

文件夹内的

有xyzfile01_xyx.txt,xyzfile02_xyz.txt ...到xyzfile50_xyz.txt

@echo off
setlocal enabledelayedexpansion
for %%F in (*.txt) do (
for /f "tokens=*" %%a in (%txtfile%) do (
   set newline=%%a
   set newline=!newline:EDI=INO!
)

1 个答案:

答案 0 :(得分:1)

在不使用其他工具/语言的情况下,批处理文件解决方案通常会在删除目标文件并执行重命名之前编写新的目标文件。

因此,这是一个使用内置PowerShell脚本语言的选项:

从批处理文件中包含当前工作目录中的文本文件

@PowerShell -NoLogo -NoProfile -Command "Get-ChildItem '.\*.txt'|%%{(Get-Content $_.FullName) -CReplace 'EDI','INO'|Set-Content $_.FullName}"

在命令提示符下,包含当前工作目录中的文本文件

PowerShell -NoL -NoP "GCI '.\*.txt'|%{(GC $_.FullName) -CReplace 'EDI','INO'|SC $_.FullName}"

如果两种情况都有,如果您希望搜索字符串不区分大小写,请将-CReplace更改为-Replace