如何用CFG文件名替换文件夹的每个CFG文件中的单词?

时间:2018-01-14 10:12:20

标签: file batch-file replace

我想知道批处理或脚本是否有可能通过将其替换为CFG文件的名称来更改多个* .cfg文件中的单词总是相同的单词?

例如,在这些* .cfg文件中

aaaaaa.cfg
bbbbbb.cfg
cccccc.cfg
...

我在每个CFG文件的第4行总是有kof98这个词。我希望将kof98替换为aaaaaa,而不使用扩展名,例如第一个CFG文件的文件名。通过将kof98替换为bbbbbb等,为第二个CFG文件添加相同内容。

1 个答案:

答案 0 :(得分:0)

这是一个易于实现的任务,使用 Dave Benham 编写的JREPL.BAT,这是一个批处理文件/ JScript混合使用JScript在文件上运行正则表达式替换。

@echo off
if not exist "*.cfg" goto :EOF
if not exist "%~dp0jrepl.bat" goto :EOF

for %%I in (*.cfg) do call "%~dp0jrepl.bat" "kof98" "%%~nI" /F "%%I" /O -

批处理文件首先检查当前目录中是否有* .cfg文件,如果此条件不成立则立即退出,请参阅Where does GOTO :EOF return to?

批处理文件 JREPL.BAT 必须与包含上述代码的批处理文件存储在同一目录中。因此,如果 JREPL.BAT 确实存在于批处理文件的目录中,则批处理文件会检查,如果此条件不为真,则退出。

命令 FOR 在当前目录中搜索与通配符模式*.cfg匹配的非隐藏文件,并为每个找到的CFG文件调用批处理文件 JREPL.BAT 区分大小写,用CFG文件的名称替换kof98的任何出现,而没有文件扩展名。

要了解使用的命令及其工作原理,请打开命令提示符窗口,执行以下命令,并完全阅读为每个命令显示的所有帮助页面。

  • call /? ...还解释了%~dp0 ...参数0的驱动器和路径是批处理文件本身。
  • echo /?
  • for /?
  • goto /?
  • if /?
  • jrepl.bat /?