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