String 创建/查找执行';查找并替换';在目录和子目录中,用于具有不同名称的excel文件

String 创建/查找执行';查找并替换';在目录和子目录中,用于具有不同名称的excel文件,string,batch-file,replace,find,String,Batch File,Replace,Find,我有许多文件(Excel/CSV)包含在单个目录下不同层次的子文件夹中。许多文件包含一个带有公共文本字符串的单元格,所有这些单元格都需要更新为新字符串。这些文件都有不同的名称。创建一个(最好是批处理)脚本来搜索整个目录(包括子目录)中给定的文本字符串,用新字符串替换所有实例,并保留所有其他内容,这有多困难 我是一个新的脚本编写者,我一直在搜索网站,还没有找到一个适合我的解决方案。我想强调的是,由于安全措施,我不能下载、安装或运行第三方软件,所以像FART这样的应用程序已经过时了。有没有人能够提供

我有许多文件(Excel/CSV)包含在单个目录下不同层次的子文件夹中。许多文件包含一个带有公共文本字符串的单元格,所有这些单元格都需要更新为新字符串。这些文件都有不同的名称。创建一个(最好是批处理)脚本来搜索整个目录(包括子目录)中给定的文本字符串,用新字符串替换所有实例,并保留所有其他内容,这有多困难


我是一个新的脚本编写者,我一直在搜索网站,还没有找到一个适合我的解决方案。我想强调的是,由于安全措施,我不能下载、安装或运行第三方软件,所以像FART这样的应用程序已经过时了。有没有人能够提供和输入类似的内容,或者将我链接到这样一个已经存在的脚本?提前谢谢

使用纯批处理进行健壮的文本编辑既困难又缓慢

除非您的管理技术人员禁用了CSCRIPT,否则您可以使用my-a混合JScript/批处理文本处理实用程序

无需下载或安装过程。BAT是纯脚本,从XP开始在任何Windows机器上本机运行。只需将脚本复制到本地计算机上名为JREPL.BAT的新文件中

拥有自己的副本后,您只需从命令控制台运行以下命令:

for /r "c:\your\root\path" %F in (*.csv) do @jrepl "search string" "replace string" /L /F "%F" /O -
我使用/L开关将搜索视为文字。您可能希望放弃/L开关,改为执行正则表达式搜索

如果将命令放在另一个脚本中,则需要将百分比加倍并使用CALL JREPL

@echo off
for /r "c:\your\root\path" %%F in (*.csv) do call jrepl "search string" "replace string" /L /F "%%F" /O -
从控制台提示符发出以下命令以获取完整文档:

jrepl /? | more

我将控制台窗口配置为一个大的缓冲区高度,这样我可以向后滚动以查看以前的输出,因此当我查看帮助时不需要更多的内容。

谢谢!我确实注意到了这一点。蝙蝠在我的搜索中。我很快会自己进行测试,但在分析脚本中编写的内容时,能否验证脚本在编写时是否会自然地对所有子目录中以及指定根路径下包含的所有指定文件执行该功能?或者我需要调整代码以实现该功能。@cliMAKtic-它将处理根目录和所有子文件夹中的所有文件,处理深度不限。您应该通过在命令控制台中键入
FOR/?
来阅读FOR/R命令。谢谢您的帮助!!