bat文件遍历文件夹, 文件夹名为 AAA, 打开里面每个文件找到共同字符串 C0.60并 替换成 C0.60BBB。

急等,立刻送分

@Echo Off
SetLocal EnableDelayedExpansion
::CODE BY aiwozhonghuaba POWERD BY iBAT 1.6
For /R %%i In (*) Do (
For /F "Delims=" %%j In (%%~si) Do (
Set Str=%%j
Echo !Str:C0.60=C0.60BBB!>>"New_%%~nxi.txt"
)
)

以上为代码,请放在AAA文件夹中执行

追问

谢谢,基本可行,但是 我需要将文件里面的内容替换掉,还是保存原来的文件名。 另外, 我的文件不是 TXT的,*.*的, 请帮忙更改下,谢谢!

追答@Echo Off
SetLocal EnableDelayedExpansion
::CODE BY aiwozhonghuaba POWERD BY iBAT 1.6
For /R %%i In (*) Do (
    For /F "Delims=" %%j In (%%~si) Do (
        Set Str=%%j
        Echo !Str:C0.60=C0.60BBB!>>"%%~pi\New.txt"
    )
    Del /f /q "%%i"
    Ren "%%~pi\New.txt" "%%i"
)

符合要求否,执行时建议先备份原文件

追问

谢谢!问题在 最后一步, 当删除完 所有%%i后, 连本身的BAT也删除了,导致最后一步 Ren"%%~pi\New.txt" "%%i"出错。 请帮忙解决。 谢了!

追答@Echo Off
SetLocal EnableDelayedExpansion
::CODE BY aiwozhonghuaba POWERD BY iBAT 1.6
For /R %%i In (*) Do (
    For /F "Delims=" %%j In (%%~si) Do (
        Set Str=%%j
        Echo !Str:C0.60=C0.60BBB!>>"%%~pi\New.txt"
    )
    IF Not "%%~i"=="%~0" (
        Del /f /q "%%i"
    )
    Ren "%%~pi\New.txt" "%%i"
)

已修正

温馨提示:答案为网友推荐,仅供参考
相似回答