使用批处理脚本从文件夹中删除特定单词

时间:2017-08-23 09:39:23

标签: windows batch-file

我有像这样的文件夹: Test.xyx.Example.1.0.0 Test.xyz.Example2.1.0.0 预期产出: 例 例2

Test.xyz.1.0.0将与其他文件夹保持一致,只有示例部分会更改,最终是文件夹名称 有没有办法使用批处理脚本删除所有文件夹的Test.xyz.1.0.0?

谢谢!

1 个答案:

答案 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
)