Batch file 将多个文件夹的第一个文件复制到另一个位置

Batch file 将多个文件夹的第一个文件复制到另一个位置,batch-file,desktop-application,file-rename,file-copying,Batch File,Desktop Application,File Rename,File Copying,我的硬盘上大约有1000个文件夹。每个文件夹包含大约100个.jpg文件。现在我需要将每个文件夹中的page 1.jpg文件复制到包含page 1.jpg文件的特定文件夹中。还有一件事。。。最后,在复制之后,特定文件夹中的每个.jpg文件都需要有一个类似于复制它的文件夹的名称 如何用最简单的方法做到这一点。也许是一些批处理文件或其他东西 未测试您需要更改根目录和目标目录的名称: 描述的场景不完全清楚。您只需要将一个文件复制到目标目录,并且它应该具有源目录的名称?是的,这对于for循环是一个问题,

我的硬盘上大约有1000个文件夹。每个文件夹包含大约100个.jpg文件。现在我需要将每个文件夹中的page 1.jpg文件复制到包含page 1.jpg文件的特定文件夹中。还有一件事。。。最后,在复制之后,特定文件夹中的每个.jpg文件都需要有一个类似于复制它的文件夹的名称


如何用最简单的方法做到这一点。也许是一些批处理文件或其他东西

未测试您需要更改根目录和目标目录的名称:


描述的场景不完全清楚。您只需要将一个文件复制到目标目录,并且它应该具有源目录的名称?是的,这对于for循环是一个问题,但是。。。我不是批处理文件编程专家…是的,只有一个文件,该文件是第1页。jpgI测试了您的程序,最后在目标文件夹中只有一个文件名为空。
@echo off

set "target_dir=E:\scriptests\redirection"
set "root_dir=E:\scriptests\labels"
pushd %root_dir%
setlocal enableDelayedExpansion

for /f "tokens=* delims=" %%a in  ('dir /b /s  "page ?1?.jpg"') do (
    set "fdir=%%~dpa"
    set stripped=!fdir:~0,-1!
   for %%# in ("!stripped!") do ( 
     echo %%~n#
     set "dir_name=%%~n#"
    )
   copy /y "%%~fa" "%target_dir%\!dir_name!.jpg"  >nul 2>nul
) 
endlocal 
popd
pause