在多个批处理文件中查找和替换

时间:2013-09-04 20:59:18

标签: batch-file

我在一个文件夹中有超过1000个批处理文件。

有没有办法运行脚本来查找特定的文本字符串(比如Apples)并在所有文件中替换Apples和(Mangos)?

提前致谢

雪见

4 个答案:

答案 0 :(得分:3)

你可以使用Sublime Text(这是一个免费的无限评估)来'查找>在文件中查找。查找和替换选项将显示在底部。在“查找:”中输入“苹果”,在“位置”中键入您的位置,然后在“替换”中键入“芒果”,然后点击“替换”。古德勒克!

答案 1 :(得分:1)

你可以在stackoverflow中找到很多例子来做纯batch-script

在这里查看replace部分:
How to replace string inside a bat file with command line parameter string
或者在这里:
How can you find and replace text in a file using the Windows command-line environment?

在这里:
Loop through file names in a Batch Script
在这里:
Iterate all files in a directory using a 'for' loop
loop目录中的文件......

这些只是少数几个,但还有更多。

现在如果您能够考虑使用第三方软件......
...我不能没有推荐WinGrep for Windows,非常非常有用,当然还有搜索结果的自动替换(也是regEx搜索)

祝你好运


[编辑]
(我添加这个因为st2是公认的解决方案)
我也是SublimeText用户,对我来说,ST2 + winGrep + DiffMerge这是Windows下开发的三重奏。

答案 2 :(得分:1)

有一个非常简单的解决方案,使用FOR循环和hybrid JScript/batch utility called REPL.BAT。该实用程序是从XP开始在任何现代Windows机器上运行的纯脚本 - 不需要第三方可执行文件。它执行正则表达式搜索并替换stdin,并将结果写入stdout。

假设REPL.BAT位于您当前的目录中,或者更好,位于PATH中的某个位置:

for %%F in (*.bat) do (
  type "%%F"|repl Apples Mangos >"%%F.new"
  move /y "%%F.new" "%%F"
)

REPL.BAT有很多选项可以使它对这么少的代码非常强大。完整的文档内置于脚本中。

答案 3 :(得分:0)

最终在批量编程时为OP的相同目标安装和使用Notepad++

先加载Notepad ++,然后再按 Ctrl + H Find in Files标签,然后填写类似的字段并点击Replace in Files按钮。 / p>

enter image description here