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

[文件操作] 【萌新求助】遍历文件夹,移动文件

[复制链接]
发表于 2018-2-8 15:50:41 | 显示全部楼层 |阅读模式
谢谢各位大佬!=3=

【文件夹树
A》图1》一堆jpg
B》图1》一堆jpg
……
Z》图1》一堆jpg
(jpg的名称为:1~200)

【需求:
1、在A~Z每个字母的文件夹中,建立“原图2”文件夹
2、将“原图1”文件夹中的 编号100往后的jpg图片,全部移动到原图2中
发表于 2018-2-8 16:25:37 | 显示全部楼层
本帖最后由 yhcfsr 于 2018-2-8 16:28 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. set "SourDir=F:\Test"

  3. cd /d "%SourDir%"
  4. for /d %%a in (*) do (
  5.         pushd %%a
  6.         for /f "delims=" %%b in ('dir /a-d/b/s') do (
  7.                 set/a name=%%~nb&set "FileDir=%%~dpb"&&set "FileDir=!FileDir:~0,-1!"
  8.                 if !name! geq 100 robocopy /mov "!FileDir!" "原图2" "%%~nxb">NUL
  9.         )
  10.         popd
  11. )
  12. pause&exit
复制代码
 楼主| 发表于 2018-2-8 16:46:30 | 显示全部楼层
回复 2# yhcfsr


    谢谢您,帮了很大的忙!QAQ(虽然很多语法都没看懂。。。)
十分抱歉,我这边的文件夹树描述错了,还得再麻烦您一下下。。。
【文件夹树
1》A》图1》一堆jpg
1》B》图1》一堆jpg
2》A》图1》一堆jpg
2》B》图1》一堆jpg
(jpg的名称为:1~200)
如上,数字文件夹有很多,每个数字里放着ABCD等
发表于 2018-2-8 19:17:51 | 显示全部楼层
  1. @echo off&setlocal enabledelayedexpansion
  2. set "SourDir=F:\Test"

  3. for /f "delims=" %%a in ('dir /a-d/b/s "%SourDir%"') do (
  4.         set/a FileName=%%~na
  5.         if !FileName! geq 100 (
  6.                 set "FilePath=%%~dpa"&&set "FilePath=!FilePath:~0,-1!"
  7.                 for /f "delims=" %%b in ("!FilePath!") do (
  8.                         set "DestPath=%%~dpb"&&set "DestPath=!DestPath:~0,-1!\原图2"
  9.                         robocopy /mov "!FilePath!" "!DestPath!" "%%~nxa"
  10.                 )
  11.         )
  12. )
复制代码
回复 3# 40252492
 楼主| 发表于 2018-2-9 09:16:07 | 显示全部楼层
本帖最后由 40252492 于 2018-2-9 09:19 编辑

回复 4# yhcfsr


    大佬。。。成功了诶T.T
实际拿到的文件是这个样子的,他最外面的编号不是12345,而是01 02 03 04 05!
【文件夹树
01》A》图1》一堆jpg
01》B》图1》一堆jpg
02》A》图1》一堆jpg
02》B》图1》一堆jpg
我尝试搜索原图,然后cd ..但是失败了,真的麻烦您了! 谢谢~
发表于 2018-2-9 13:51:46 | 显示全部楼层
回复 5# 40252492


   不管是12345,还是0102030405,还是别的什么名字都不影响。应该可以正确执行。
 楼主| 发表于 2018-2-9 17:51:58 | 显示全部楼层
回复 6# yhcfsr


    是的,程序没有问题,十分感谢您

早上用的时候提示“找不到该路径”,查了好久没正确的解释
同事说是文件夹树埋得太深了,结果拉出来放到D盘根目录下就直接出来了
请问为何会这样呢?明明cmd里echo %cd%是可以获取到的,可能是作为参数有字节限制之类的吧。。。

然后,我稍微修改了一下下,如下
  1. for /f "delims=" %%a in ('dir /a-d/b/s "%cd%"') do (
  2.         set/a FileName=%%~na
  3.         if !FileName! geq 2100 (
  4.                 set "FilePath=%%~dpa"&&set "FilePath=!FilePath:~0,-1!"
  5.                 for /f "delims=" %%b in ("!FilePath!") do (
  6.                 cd /d %%b
  7.                 cd ..
  8.                 robocopy /mov "!FilePath!" "原图2" "%%~nxa"
  9.                 )
  10.         )
  11. )
复制代码
如上,主要修改的是剪切的目标路径
因为找到“原图”里编号的图片文件之后,已经在每个字母的文件夹里面了
直接cd ..就回到了上级目录,省去了一次set后面我看不懂的那些,测试可用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 06:16 , Processed in 0.053489 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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