将多个文件夹的第一个文件复制到其他位置
Copy first file for multiple folders to some another location
我的硬盘上有大约 1000 个文件夹。每个文件夹包含大约 100 个 .jpg 文件。现在我需要从每个文件夹 "page (1).jpg" 文件复制到某个特定文件夹(每个文件夹包含 "page (1).jpg" 文件)。还有一件事...最后,复制后,特定文件夹中的每个 .jpg 文件都需要具有与复制文件夹相似的名称。
如何以最简单的方式做到这一点。也许有一些批处理文件或其他东西......
未测试(需要更改root_dir和target_dir的名称):
@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
我的硬盘上有大约 1000 个文件夹。每个文件夹包含大约 100 个 .jpg 文件。现在我需要从每个文件夹 "page (1).jpg" 文件复制到某个特定文件夹(每个文件夹包含 "page (1).jpg" 文件)。还有一件事...最后,复制后,特定文件夹中的每个 .jpg 文件都需要具有与复制文件夹相似的名称。
如何以最简单的方式做到这一点。也许有一些批处理文件或其他东西......
未测试(需要更改root_dir和target_dir的名称):
@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