在所有子目录中将一个字符替换为另一个字符

问题描述 投票:0回答:1

大家好,我有一个bat文件代码,可以用另一个字符替换特定字符;

效果很好,但我想在所有子目录中执行此操作。有人可以帮我吗?

set folder="C:\New folder\"
cd /d %folder%

setlocal enabledelayedexpansion

set "pattern=-"
set "replace=_"

for %%I in (*.txt) do (
set "file=%%~I"
ren "%%I" "!file:%pattern%=%replace%!"
)

endlocal

batch-file
1个回答
0
投票

试试这个。 使用

for /r
遍历所有子目录,然后使用
%%~nxI
获取文件的名称和扩展名。

set "folder=C:\stackoverflow\"

cd /d "%folder%"

setlocal enabledelayedexpansion

set "pattern=-"

set "replace=_"

for /r %%I in (*.txt) do (
    set "file=%%~nxI"
    ren "%%I" "!file:%pattern%=%replace%!"
)

endlocal
© www.soinside.com 2019 - 2024. All rights reserved.