我在一个文件夹中有超过1000个批处理文件。
有没有办法运行脚本来查找特定的文本字符串(比如Apples)并在所有文件中替换Apples和(Mangos)?
提前致谢
雪见
答案 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>