找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 19981|回复: 6

[文件操作] 批处理如何将文件按照文件标记移动到新的文件夹

[复制链接]
发表于 2022-5-30 22:49:19 | 显示全部楼层 |阅读模式
有若干文件夹,每个文件夹中有很多图片,名字如下:
0001-.jpg
0002.jpg
0003.jpg
0004-.jpg
0005.jpg
0006-.jpg
0007.jpg
我想让命令建立多个文件夹0001、0002、0003的文件夹,将0001-.jpg至0003.jpg移动到0001文件夹,将0004-.jpg至0005.jpg移动到0002文件夹,将0006-.jpg至0007.jpg移动到0003文件夹
请问如何编写命令,在此感谢
发表于 2022-5-31 08:45:13 | 显示全部楼层
回复 1# jingfang434


    移动的规律是什么,比如8、9、10个文件呢?
 楼主| 发表于 2022-5-31 10:30:06 | 显示全部楼层
回复 2# Batcher


    你好,每个文件夹中文件数量不同
发表于 2022-5-31 11:00:13 | 显示全部楼层
本帖最后由 flashercs 于 2022-5-31 12:07 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd /d "%~dp0"
  4. for %%i in ("文件夹1" "文件夹2") do (
  5.   if exist "%%~i" (
  6.     pushd "%%~i"
  7.     echo "%%~i"
  8.     set ctr=10000
  9.     for /f "delims=" %%A in ('2^>nul dir /a-d /b *jpg') do (
  10.       set basename=%%~nA
  11.       if "!basename:~-1!"=="-" (
  12.         set /a ctr+=1
  13.         set dirname=!ctr:~-4!
  14.         md "!dirname!" 2>nul
  15.       )
  16.         move "%%A" "!dirname!"
  17.     )
  18.     popd
  19.   )
  20. )
  21. endlocal
  22. pause
  23. exit /b

复制代码
 楼主| 发表于 2022-5-31 11:54:52 | 显示全部楼层
回复 4# flashercs


    多谢多谢!请问如何可以同时处理多个文件夹中的文件呢?
发表于 2022-5-31 12:08:44 | 显示全部楼层
回复 5# jingfang434


    2楼修改了一下
 楼主| 发表于 2022-5-31 12:26:35 | 显示全部楼层
回复 6# flashercs


    感谢感谢!测试了,很好
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 01:55 , Processed in 0.010844 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表