Windows 在multi-TXT中更改单词并保存相同的名称

Windows 在multi-TXT中更改单词并保存相同的名称,windows,batch-file,cmd,Windows,Batch File,Cmd,我需要在文件夹中的所有TXT文件中将单词“EDI”更改为“INO”,但在文件夹中保存相同的名称 文件夹内部有xyzfile01_xyz.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 newli

我需要在文件夹中的所有TXT文件中将单词“EDI”更改为“INO”,但在文件夹中保存相同的名称

文件夹内部有xyzfile01_xyz.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!
)

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

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


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

@PowerShell-NoLogo-NoProfile-Command“Get ChildItem.\*.txt'.%%{(Get Content$\.FullName)-CReplace'EDI','INO'.\124; Set Content$\.FullName}”

在命令提示下,使用当前工作目录中的文本文件:

PowerShell-NoL-NoP“GCI”。\*.txt'{(GC$\.FullName)-CReplace'EDI','INO''SC$\.FullName}”


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

关于如何循环浏览文件夹中的文件,存在许多问题。请做些调查
[batch file]文件夹中的循环文件
是一个搜索表达式,应该很有用。请原谅。但我什么都不懂。你帮不了我,4年前你也问过同样的问题。在一个管道中读写同一个文件似乎有风险。这可能是因为
Get Content
读取整个文件。因此,如果文件太大,它可能无法正常工作。我理解您的担忧,@lit,但是我从来没有因为这样做而出现问题。TBF,如果文件“很大”,则在标准批处理文件
for
循环中逐个读取每一行,对保留文件执行替换,删除或重新命名原始文件并重命名保留文件,听起来不是特别有效。我的答案是根据标题和问题规定保存到“同一名称”,因为链接的“所谓”副本似乎都保存到不同的名称。我想他们可以保存到相同的名字,但在不同的位置!我希望我们有一个
运行Sed
cmdlet。
Run Grep
Run Awk
怎么样?如果文件保存在同一卷上的新目录中,删除现有目录并使用
MOVE
命令会非常快。@lit,我对“大文件”的关注,从效率上讲,更多的是一次读写一行。不过,我相信很快就会有人来推荐OP pops,以提供DosTips和下载/解压一个100KB+的混合
.js
/
.bat
文件,其中包含2000多行代码,其中一半是要阅读和消化的使用信息,并使用适当的选项运行该文件!