创建批处理文件以删除,重命名和移动多个文件的多个子文件夹

时间:2014-03-01 13:35:55

标签: windows batch-file batch-rename

我正在尝试开发一个允许我重命名,删除和移动文件的批处理脚本。

第1步:

对于每个文件夹:删除" 00.jpg"和" Credits.jpg"文件。

FOR /D %%d IN (*) DO del %%d\00.jpg;del %%d\Credits.jpg

第2步(我被困的地方):

对于每个文件夹:检索最后4个字符(XXXX) 必须将每个文件夹中的每个文件重命名为:XXXX +" (" + filename +")" .jpg

例如:a_v18_c160 \ 03.jpg - > a_v18_c160 \ c160(03).jpg

文件夹名称可以包含特殊字符:" ["。"]"。" _"," - "但总是以" c"再加上三个数字。

步骤2.1(可选):

如果没有必要,请删除0。 例如:c160(03).jpg - > c160(3).jpg

第3步:

将文件从每个子文件夹移动到根文件夹:
示例:根文件夹\ a \ c160(02).jpg - >根文件夹\ c160(02).jpg

FOR /D %%d IN (*) DO move %%d\* "F:\Root Folder\"

从这样的事情开始:

  

F:\ Root Folder \ a_v18_c160 \ 00.jpg
F:\ Root   Folder \ a_v18_c160 \ 01.jpg
F:\ Root Folder \ a_v18_c160 \ 02.jpg
  F:\ Root Folder \ a_v18_c160 \ 03.jpg
F:\ Root   Folder \ a_v18_c160 \ Credits.jpg
F:\ Root Folder \ a_v18_c161 \ 00.jpg
  F:\ Root Folder \ a_v18_c161 \ 01.jpg
F:\ Root   文件夹\ a_v18_c161 \ Credits.jpg

结果将是:

  

F:\ Root Folder \ c160(01).jpg
F:\ Root Folder \ c160(02).jpg
  F:\ Root Folder \ c160(03).jpg
F:\ Root Folder \ c161(01).jpg
  F:\ Root Folder \ a_v18_c160 \\ F:\ Root Folder \ a_v18_c161 \

如何执行第2步?

2 个答案:

答案 0 :(得分:1)

在一些示例文件和文件夹上测试。

它应该从要移动文件的root_folder运行。

@echo off
for /r %%a in (00.jpg Credits.jpg) do del "%%a"
  setlocal enabledelayedexpansion
   for /d /r %%a in (*) do (
      set "num=%%~nxa"
      set "num=!num:~-4!"
      for %%b in ("%%a\*.jpg") do move "%%b" ".\!num! (%%~nb)%%~xb"
   )
for /f "delims=" %%a in ('dir /b /a-d *.jpg') do (
   set "name=%%a"
   ren "%%a" "!name:(0=(!"
)

答案 1 :(得分:0)

而不是批处理脚本,您总是可以用Java,Perl,Ruby,PHP编写命令行程序。等你最喜欢的语言。我发现使用高级编程语言可以更轻松地编写这样复杂的脚本。