0

我基本上有这样的设置:

C:\Upload\A
C:\Upload\B
C:\Upload\C
C:\Upload\D
C:\Upload\E

其中A, B, C, D,E总是不同的(产品 ID)并且总是不同的数量(它不会总是 5 个子目录)。这些子目录中的每一个都包含 24 个图像,编号为 01-24。

我需要创建一个查看 Upload 目录的批处理文件,获取每个子目录的名称并将该名称附加到该子目录中包含的每个图像文件的开头。

因此,C:\Upload\A\01.jpgC:\Upload\A\A-O1.jpg与每个子目录中的其他 23 个图像一样。

批处理文件需要对上传目录中的每个子目录执行相同的操作。

这对我来说听起来非常复杂,我已经开始尝试写这个,我还没有任何值得在这篇文章中分享的东西。

任何帮助将不胜感激。

4

1 回答 1

5

这将重命名“C:\Upload”子目录中的文件

@echo off
for /d %%D in (C:\Upload\*) do (
  for /f "eol=: delims=" %%F in ('dir /b /a-d "%%D" ^| findstr /vbic:"%%~nD-"') do (
    ren "%%D\%%F" "%%~nD-%%F"
  )
)

我添加了额外的代码以防止两次重命名同一个文件。您应该能够安全地多次运行该脚本。

如果要递归地重命名每个子目录树中的文件,则需要对代码稍作更改。

@echo off
for /d /r "C:\Utils" %%D in (*) do (
  for /f "eol=: delims=" %%F in ('dir /b /a-d "%%D" ^| findstr /vbic:"%%~nD-"') do (
    ren "%%D\%%F" "%%~nD-%%F"
  )
)
于 2012-07-10T16:45:12.907 回答