我有像这样的文件夹: Test.xyx.Example.1.0.0 Test.xyz.Example2.1.0.0 预期产出: 例 例2
Test.xyz.1.0.0将与其他文件夹保持一致,只有示例部分会更改,最终是文件夹名称 有没有办法使用批处理脚本删除所有文件夹的Test.xyz.1.0.0?
谢谢!
答案 0 :(得分:2)
尝试以下方法:
@echo off
setlocal enabledelayedexpansion
for /d %%d in (Test.xyz.*) do (
set "dir=%%d"
set "dir=!dir:Test.xyz.=!"
set "dir=!dir:.1.0.0=!"
@echo ren "%%d" "!dir!"
)
运行它,如果它看起来正确,请删除@echo,使其实际运行ren
命令。
警告:这会删除子字符串“Test.xyz”。和文件中任何地方的“.1.0.0”,而不仅仅是开头和结尾。因此,如果您的文件中名称的“示例”部分包含其中一个子字符串,则此脚本将无效。
Gerhard Barnard编辑: 记录所有内容并发现错误。
@echo off
setlocal enabledelayedexpansion
for /r %%d in (*) do (
set "dir=%%d" >> log.log
set "dir=!dir:Test.xyz.=!" >> log.log
set "dir=!dir:.1.0.0=!" >> log.log
@echo ren "%%d" "!dir!" >> log.log
)