Board logo

标题: [已解决]20元求多文件夹下的指定同名文件问题 [打印本页]

作者: 学习小白    时间: 2019-5-8 22:01     标题: [已解决]20元求多文件夹下的指定同名文件问题

已有多个文件情况如下:
D:\fcnlast\picture\train\ADE_train_00000001_json\
D:\fcnlast\picture\train\ADE_train_00000002_json\
D:\fcnlast\picture\train\ADE_train_00000003_json\
D:\fcnlast\picture\train\ADE_train_00000004_json\
D:\fcnlast\picture\train\ADE_train_00000005_json\
等等140个文件
每个文件夹里面有五个文件:img.png;info.yaml;label.png;label_names.txt;label_viz.png五个同名文件
把每个文件夹里面的label.png这一个复制粘贴重命名如下:
D:\fcnlast\picture\traincopy\ADE_train_00000001_json.png
D:\fcnlast\picture\traincopy\ADE_train_00000002_json.png
D:\fcnlast\picture\traincopy\ADE_train_00000003_json.png
简而言之就是多文件夹下的指定同名文件用上一级文件名命名并存放在同一文件夹下,一开始没有描述清楚,重新编辑,增加悬赏,非常感谢!
微信支付宝都可以,多谢!!!
作者: Batcher    时间: 2019-5-8 22:26

  1. @echo off
  2. if not exist "D:\fcnlast\picture\traincopy" (
  3.     md "D:\fcnlast\picture\traincopy"
  4. )
  5. for /f "delims=" %%i in ('dir /b /s /a-d "D:\fcnlast\picture\train\*.png"') do (
  6.     for /f %%j in ("%%i\..") do (
  7.         copy "%%i" "D:\fcnlast\picture\traincopy\%%~nxj%%~xi"
  8.     )
  9. )
复制代码

作者: zaqmlp    时间: 2019-5-8 22:44

本帖最后由 zaqmlp 于 2019-5-9 15:51 编辑
  1. @echo off
  2. set info=互助互利,支付宝扫码头像,感谢赞助
  3. rem 有问题,可加QQ956535081及时沟通
  4. title %info%
  5. cd /d "%~dp0"
  6. set "原文件夹=D:\fcnlast\picture\train"
  7. set "新文件夹=D:\fcnlast\picture\traincopy"
  8. if not exist "%新文件夹%" md "%新文件夹%"
  9. powershell -NoProfile -ExecutionPolicy bypass ^
  10.     dir -liter '%原文件夹%' -r^|?{($_ -is [System.IO.FileInfo]) -and ($_.Name -eq 'label.png')}^|group {$_.Name}^|%%{^
  11.         if($_.count -ge 2){^
  12.             foreach($it in $_.Group){^
  13.                 $newname=$it.Directory.Name+$it.Extension;^
  14.                 write-host ($it.FullName+' --^> %新文件夹%\'+$newname);^
  15.                 cp -liter $it.FullName ('%新文件夹%\'+$newname) -force;^
  16.             };^
  17.         };^
  18.     };^
  19.     write-host '%info%' -ForegroundColor green;
  20. pause
复制代码

作者: 学习小白    时间: 2019-5-9 15:12

回复 2# Batcher


    您好!我一开始描述的有点问题导致处理结果不理想,可否再帮我看一下,已增加悬赏,十分感谢!!!
作者: 学习小白    时间: 2019-5-9 15:12

回复 3# zaqmlp


      您好!我一开始描述的有点问题导致处理结果不理想,可否再帮我看一下,已增加悬赏,十分感谢!!!
作者: zaqmlp    时间: 2019-5-9 15:37

回复 5# 学习小白


只是复制重命名这个label.png吗?加我QQ
作者: 学习小白    时间: 2019-5-9 15:45

回复 6# zaqmlp


    是的只是label.png这一个文件,已经好友,是叫zouni吗??
作者: zaqmlp    时间: 2019-5-9 15:54

回复 7# 学习小白
已修改
作者: Batcher    时间: 2019-5-9 19:45

回复 4# 学习小白
  1. @echo off
  2. if not exist "D:\fcnlast\picture\traincopy" (
  3.     md "D:\fcnlast\picture\traincopy"
  4. )
  5. for /f "delims=" %%i in ('dir /b /s /a-d "D:\fcnlast\picture\train\*.png"') do (
  6.     if "%%~nxi" equ "label.png" (
  7.         for /f %%j in ("%%i\..") do (
  8.             copy "%%i" "D:\fcnlast\picture\traincopy\%%~nxj%%~xi"
  9.         )
  10.     )
  11. )
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2