如何根据要重命名的每个文件夹中的第一个子文件夹的名称重命名文件夹中的所有子文件夹?

时间:2014-08-01 18:23:58

标签: batch-file for-loop

@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
FOR /f "tokens=1* delims=" %%a IN (
 'dir /b /ad "%sourcedir%\*" '
  ) DO (
  ECHO "%sourcedir%.%%a\%%a\"
  )

GOTO :EOF

我想略微编辑这个批处理文件。我有以下路径结构:

source\folders\versions

源下的每个文件夹都有一个"版本"文件夹中。

例如:

  • 源\ COMPONENT1 \ 3.2 \
  • 源\ COMPONENT2 \ 1.3 \
  • 源\ component3 \ 4.2 \

需要更改为:

  • 源\ component1.3.2 \ 3.2 \
  • 源\ component2.1.3 \ 1.3 \
  • 源\ component3.4.2 \ 4.2 \

必须在批处理代码中编辑什么才能从上面获取此文件夹结构?

1 个答案:

答案 0 :(得分:0)

这是一个批处理代码,通过附加一个点和每个子文件夹的第一个找到的子文件夹的名称来重命名指定文件夹中的每个子文件夹。

@echo off
set "SourceDir=U:\sourcedir"
cd /D %SourceDir%
for /f "usebackq delims=" %%a in ( `dir "%SourceDir%\*" /ad /b 2^>nul` ) do (
  for /f "usebackq delims=" %%b in ( `dir "%%a\*" /ad /b 2^>nul`) do (
     ren "%%a" "%%a.%%b" 2>nul
  )
)