标题: [文件操作] 【已解决】批处理移动图片怎样根据文件名移动到不同的文件夹? [打印本页]
作者: k员外 时间: 2020-12-28 17:48 标题: 【已解决】批处理移动图片怎样根据文件名移动到不同的文件夹?
本帖最后由 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子文件,最好是在一个根目录下所有的子文件夹同时进行这些命令。
作者: Batcher 时间: 2020-12-28 22:16
回复 1# k员外
请举几个例子说明一下,移动之前在哪个目录,移动之后在哪个目录。
作者: qixiaobin0715 时间: 2020-12-28 22:49
我猜想你说的是当前文件夹,根目录应当指C: D:等
作者: k员外 时间: 2020-12-29 09:40
回复 2# Batcher
移动之前甲文件夹下和a,b文件夹同级
作者: k员外 时间: 2020-12-29 09:50
回复 2# Batcher
就是一个文件夹下有200个子文件夹,每个子文件夹里有图片重命名为ABC,def,123,456等图片,还有重命名为字母和数字的两个和图片同级的子文件夹,我需要abc,def的图片进入字母的文件夹,123,456的图片进入数字的文件夹。最好能200个文件夹同时进行
作者: qixiaobin0715 时间: 2020-12-29 10:40
回复 5# k员外
欧阳奋进!假设数字文件夹为A,字母文件夹为B。- @echo off
- for /d %%a in (*) do (
- for %%b in ("%%a"\*) do (
- setlocal enabledelayedexpansion
- set var=%%~nb
- (echo !var:~0,1!|findstr "[0-9]"&&move "%%b" "%%a\A"||move "%%b" "%%a\B")>nul
- )
- )
- pause
复制代码
作者: k员外 时间: 2020-12-29 11:28
回复 6# qixiaobin0715
大佬,怎么判断图片名称的,我太菜了,看不太懂
作者: k员外 时间: 2020-12-29 11:31
回复 6# qixiaobin0715
因为需要判断的其实全是汉字,怎么让它区分汉字
作者: qixiaobin0715 时间: 2020-12-29 13:04
回复 8# k员外
不是菜,不知道为什么总是说不到点子上,首层不知你在说什么,好不容易在5楼模模糊糊差不多,没想到又是顾左右而言他。你到底要表达的是什么意思,只有你自己知道。别人又如何帮到你呢?
作者: Batcher 时间: 2020-12-29 14:17
回复 8# k员外
请给出几个真实的文件夹名、文件名,不要自己编名字了。
作者: k员外 时间: 2020-12-29 15:10
回复 10# Batcher
在XXX村文件夹下有200个村里户主姓名命名的子文件夹,子文件夹里有图片若干和三个文件夹如下
图片名称,身份证,户口簿,建设用地批准书,宗地基本信息表,界址标示表,界址签章表,宗地草图,调查审核表,界址说明表,界址点坐标表,房屋基本信息调查表,宗地图,房分层分户图
文件名称,不动产来源证明,不动产权籍调查表,权利人户籍信息
身份证,户口簿进入权利人户籍信息文件夹
宗地基本信息表,界址标示表,界址签章表,宗地草图,调查审核表,界址说明表,界址点坐标表,房屋基本信息调查表,宗地图,房分层分户图进入不动产权籍调查表文件夹
建设用地批准书进入不动产来源证明文件夹
作者: Batcher 时间: 2020-12-29 15:36
回复 11# k员外
测试代码之前请做好文件夹备份
请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ- @echo off
- set "DstFolder1=权利人户籍信息"
- set "DstFolder2=不动产来源证明"
- set "DstFolder3=不动产权籍调查表"
- cd /d "%~dp0"
- for /d %%i in (*) do (
- pushd "%%i"
- for %%j in ("%DstFolder1%","%DstFolder2%","%DstFolder3%") do (
- if not exist "%%j" (
- md "%%j"
- )
- )
- for /f "delims=" %%j in ('dir /b /a-d *身份证* *户口簿*') do (
- move "%%j" "%DstFolder1%\"
- )
- for /f "delims=" %%j in ('dir /b /a-d *建设用地批准书*') do (
- move "%%j" "%DstFolder2%\"
- )
- move "*.*" "%DstFolder3%\"
- popd
- )
复制代码
作者: qixiaobin0715 时间: 2020-12-29 16:27
这样应当也行吧:- @echo off
- set str=a身份证 a户口簿 b宗地基本信息表 b界址标示表 b界址签章表 b宗地草图 b调查审核表 b界址说明表 b界址点坐标表 b房屋基本信息调查表 b宗地图 b房分层分户图 c建设用地批准书
- setlocal enabledelayedexpansion
- for %%a in (%str%) do (
- set n=%%a
- set #!n:~1!=!n:~0,1!
- )
- for /d %%b in (*) do (
- pushd "%%b"
- for /f "delims=" %%c in ('dir /b /a-d') do (
- if !#%%~na!==a move "%%c" "%%b\权利人户籍信息"
- if !#%%~na!==b move "%%c" "%%b\不动产权籍调查表"
- if !#%%~na!==c move "%%c" "%%b\不动产来源证明"
- )
- popd
- )
- pause
复制代码
作者: k员外 时间: 2020-12-29 16:27
本帖最后由 k员外 于 2020-12-29 16:28 编辑
回复 9# qixiaobin0715
谢谢大佬
作者: k员外 时间: 2020-12-29 16:53
回复 12# Batcher
感谢大佬
作者: qixiaobin0715 时间: 2020-12-30 14:48
受12楼代码启示可将13楼代码简化为:- @echo off
- set str=a身份证 a户口簿 b建设用地批准书
- setlocal enabledelayedexpansion
- for %%a in (%str%) do (
- set n=%%a
- set #!n:~1!=!n:~0,1!
- )
- for /d %%b in (*) do (
- pushd "%%b"
- for /f "delims=" %%c in ('dir /b /a-d') do (
- if !#%%~na!==a move "%%c" "%%b\权利人户籍信息"
- if !#%%~na!==b move "%%c" "%%b\不动产来源证明"
- if "!#%%~na!"=="" move "%%c" "%%b\不动产权籍调查表"
- )
- popd
- )
- pause
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |