[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[已解决]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
简而言之就是多文件夹下的指定同名文件用上一级文件名命名并存放在同一文件夹下,一开始没有描述清楚,重新编辑,增加悬赏,非常感谢!
微信支付宝都可以,多谢!!!

回复 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. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 7# 学习小白
已修改
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 6# zaqmlp


    是的只是label.png这一个文件,已经好友,是叫zouni吗??

TOP

回复 5# 学习小白


只是复制重命名这个label.png吗?加我QQ
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 3# zaqmlp


      您好!我一开始描述的有点问题导致处理结果不理想,可否再帮我看一下,已增加悬赏,十分感谢!!!

TOP

回复 2# Batcher


    您好!我一开始描述的有点问题导致处理结果不理想,可否再帮我看一下,已增加悬赏,十分感谢!!!

TOP

本帖最后由 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
复制代码
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

  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. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表