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

[文件操作] 【已解决】批处理移动图片怎样根据文件名移动到不同的文件夹?

本帖最后由 k员外 于 2020-12-29 16:43 编辑

for /f "tokens=* delims=" %%i in ('dir /s /q /b *.png *.jpg *.gif') do move "%%i" ".\文件夹\指定子文件夹\"
因为图片是需要分开放入文件夹的,怎么指定图片重命名为A的移动到A子文件夹,图片重命名为B的图片移动到B子文件,最好是在一个根目录下所有的子文件夹同时进行这些命令。

受12楼代码启示可将13楼代码简化为:
  1. @echo off
  2. set str=a身份证 a户口簿 b建设用地批准书
  3. setlocal enabledelayedexpansion
  4. for %%a in (%str%) do (
  5.     set n=%%a
  6.     set #!n:~1!=!n:~0,1!
  7. )
  8. for /d %%b in (*) do (
  9.     pushd "%%b"
  10.     for /f "delims=" %%c in ('dir /b /a-d') do (
  11.         if !#%%~na!==a move "%%c" "%%b\权利人户籍信息"
  12.         if !#%%~na!==b move "%%c" "%%b\不动产来源证明"
  13.         if "!#%%~na!"=="" move "%%c" "%%b\不动产权籍调查表"
  14.     )
  15.     popd
  16. )
  17. pause
复制代码

TOP

回复 12# Batcher


    感谢大佬

TOP

本帖最后由 k员外 于 2020-12-29 16:28 编辑

回复 9# qixiaobin0715


    谢谢大佬

TOP

这样应当也行吧:
  1. @echo off
  2. set str=a身份证 a户口簿 b宗地基本信息表 b界址标示表 b界址签章表 b宗地草图 b调查审核表 b界址说明表 b界址点坐标表 b房屋基本信息调查表 b宗地图 b房分层分户图 c建设用地批准书
  3. setlocal enabledelayedexpansion
  4. for %%a in (%str%) do (
  5.     set n=%%a
  6.     set #!n:~1!=!n:~0,1!
  7. )
  8. for /d %%b in (*) do (
  9.     pushd "%%b"
  10.     for /f "delims=" %%c in ('dir /b /a-d') do (
  11.         if !#%%~na!==a move "%%c" "%%b\权利人户籍信息"
  12.         if !#%%~na!==b move "%%c" "%%b\不动产权籍调查表"
  13.         if !#%%~na!==c move "%%c" "%%b\不动产来源证明"
  14.     )
  15.     popd
  16. )
  17. pause
复制代码

TOP

回复 11# k员外


测试代码之前请做好文件夹备份

请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
  1. @echo off
  2. set "DstFolder1=权利人户籍信息"
  3. set "DstFolder2=不动产来源证明"
  4. set "DstFolder3=不动产权籍调查表"
  5. cd /d "%~dp0"
  6. for /d %%i in (*) do (
  7.     pushd "%%i"
  8.     for %%j in ("%DstFolder1%","%DstFolder2%","%DstFolder3%") do (
  9.         if not exist "%%j" (
  10.             md "%%j"
  11.         )
  12.     )
  13.     for /f "delims=" %%j in ('dir /b /a-d *身份证* *户口簿*') do (
  14.         move "%%j" "%DstFolder1%\"
  15.     )
  16.     for /f "delims=" %%j in ('dir /b /a-d *建设用地批准书*') do (
  17.         move "%%j" "%DstFolder2%\"
  18.     )
  19.     move "*.*" "%DstFolder3%\"
  20.     popd
  21. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 10# Batcher


    在XXX村文件夹下有200个村里户主姓名命名的子文件夹,子文件夹里有图片若干和三个文件夹如下
    图片名称,身份证,户口簿,建设用地批准书,宗地基本信息表,界址标示表,界址签章表,宗地草图,调查审核表,界址说明表,界址点坐标表,房屋基本信息调查表,宗地图,房分层分户图
    文件名称,不动产来源证明,不动产权籍调查表,权利人户籍信息
   身份证,户口簿进入权利人户籍信息文件夹
   宗地基本信息表,界址标示表,界址签章表,宗地草图,调查审核表,界址说明表,界址点坐标表,房屋基本信息调查表,宗地图,房分层分户图进入不动产权籍调查表文件夹
   建设用地批准书进入不动产来源证明文件夹

TOP

回复 8# k员外


    请给出几个真实的文件夹名、文件名,不要自己编名字了。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 8# k员外
不是菜,不知道为什么总是说不到点子上,首层不知你在说什么,好不容易在5楼模模糊糊差不多,没想到又是顾左右而言他。你到底要表达的是什么意思,只有你自己知道。别人又如何帮到你呢?

TOP

回复 6# qixiaobin0715


    因为需要判断的其实全是汉字,怎么让它区分汉字

TOP

回复 6# qixiaobin0715


    大佬,怎么判断图片名称的,我太菜了,看不太懂

TOP

回复 5# k员外
欧阳奋进!假设数字文件夹为A,字母文件夹为B。
  1. @echo off
  2. for /d %%a in (*) do (
  3.     for %%b in ("%%a"\*) do (
  4.         setlocal enabledelayedexpansion
  5.         set var=%%~nb
  6.         (echo !var:~0,1!|findstr "[0-9]"&&move "%%b" "%%a\A"||move "%%b" "%%a\B")>nul
  7.     )
  8. )
  9. pause
复制代码

TOP

回复 2# Batcher


    就是一个文件夹下有200个子文件夹,每个子文件夹里有图片重命名为ABC,def,123,456等图片,还有重命名为字母和数字的两个和图片同级的子文件夹,我需要abc,def的图片进入字母的文件夹,123,456的图片进入数字的文件夹。最好能200个文件夹同时进行

TOP

回复 2# Batcher


    移动之前甲文件夹下和a,b文件夹同级

TOP

我猜想你说的是当前文件夹,根目录应当指C: D:等

TOP

返回列表