批处理文件:将具有最后目录的文件复制到另一个目录中

时间:2015-04-15 05:54:26

标签: batch-file

我有一个目录,其中包含XX子文件夹,并且靠近这些子文件夹中的YY文件(最多为ZZ图层)。文件为.jpg.png,每个扩展名都有唯一的文件名。我需要将文件复制到根目录(到另一个目录),而不重新创建像xcopy那样的子文件夹结构,但是使用最后一个文件夹。

现有

Dir1\Folder1\Holiday.jpg
Dir1\Folder3\Picture.png
Dir1\Folder3\Mobile.jpg
Dir1\Folder3\Dir2\000114.jpg
Dir1\Folder3\Dir2\000115.jpg
Dir1\Folder3\Dir2\000116.jpg
Dir1\Folder5\Dir3\A.jpg
Dir1\Folder5\Dir3\B.png
Dir1\Folder5\Dir3\Dir4\a1.jpg
Dir1\Folder5\Dir3\Dir4\b12.png
Dir1\Folder5\Dir3\Dir4\c45.jpg

必需:

Dir1\Holiday.jpg
Folder3\Picture.png
Folder3\Mobile.jpg
Dir2\000114.jpg
Dir2\000115.jpg
Dir2\000116.jpg
Dir3\A.jpg
Dir3\B.png
Dir4\a1.jpg
Dir4\b12.png
Dir4\c45.jpg 

1 个答案:

答案 0 :(得分:1)

这应该可以帮助您入门:

第一个for循环枚举整个目录结构。 %%我将成为该文件的完整路径。 第二个for循环用于查看除最后一个'\'之外的目录路径,因此它看起来像文件的完整路径!

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
for /r %%i in (*) do (
    set pt=%%~pi
    for %%j in ("!pt:~0,-1!") do (
        echo LastDir=%%~nxj
        echo Filename=%%~nxi
        echo.
    )
)