Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批处理文件:将最后一个目录中的文件复制到另一个目录中_Batch File - Fatal编程技术网

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

Batch file 批处理文件:将最后一个目录中的文件复制到另一个目录中,batch-file,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\

我有一个目录,其中有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 
必填项:

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 

这将帮助您开始:

第一个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.
    )
)

非常感谢,你是一位真正的大师。我只添加了以下内容:-带空格的路径名的引号:复制“%%I”“%%~nxj”存在函数:如果不存在“%%~nxj”md“%%~nxj”Jan E.浦肯野大学