【问题标题】:Copy first file for multiple folders to some another location将多个文件夹的第一个文件复制到另一个位置
【发布时间】:2015-04-16 04:27:42
【问题描述】:

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

如何以最简单的方式做到这一点。也许有一些批处理文件或其他东西......

【问题讨论】:

  • 描述的场景不完全清楚。你只需要复制一个文件到目标目录,它应该有源目录的名称?
  • 是的,这是 for 循环的问题,但是...我不是批处理文件编程方面的专家...
  • 是的,只有一个文件,该文件是页面 (1).jpg

标签: batch-file desktop-application file-rename file-copying


【解决方案1】:

未测试(您需要更改root_dirtarget_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

【讨论】:

  • 我测试了你的程序,最后在目标文件夹中只有一个名称为空的文件。
猜你喜欢
  • 1970-01-01
  • 2021-12-18
  • 1970-01-01
  • 2018-06-25
  • 2011-05-03
  • 2013-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多