我需要更新大量 .xml 文件中的单个参数。我四处阅读并在 Windows 命令行中使用一行 perl 我可以让它一次替换一个文件,但我正在努力让 perl 一次完成所有文件。
perl -pi.bak -e "s/(\d+\.\d+E-\d+)/2.2E-6/g;" test.xml
这行得通,但是当我尝试将其更改为类似
perl -pi.bak -e "s/(\d+\.\d+E-\d+)/2.2E-6/g;" *.xml
我收到“无法打开 *.xml:无效参数”
perl -pi.bak -e "s/(\d+\.\d+E-\d+)/2.2E-6/g;" .xml
给我“无法打开 .xml:没有那个文件或目录”
我试着看看我是否可以使用 system() 从另一个 perl 脚本中调用它,但这似乎与引号的使用有关,而且可能不是执行此操作的最佳方法。
总结:
问题 - 我有大量 .xml 文件,我想在其中更改单个参数。我必须能够在 Windows 机器上执行此操作,理想情况下,我想找到一个解决方案,使我能够在脚本中自动执行此操作,这样我就可以循环遍历大量参数值替换(通过调用一个单独的程序)将 .xml 文件作为替换之间的输入)。
感谢您提供的任何帮助。
最佳答案
试试这个:
for /r %i in (*.xml) do perl -pi.bak -e "s/(\d+.\d+E-\d+)/2.2E-6/g;" %i
关于windows - 如何在文件夹中的所有文件中执行文本替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5352577/