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

[文件操作] [分享]批处理根据A文件夹目录创建B目录并移动文件

[复制链接]
发表于 2022-10-13 08:42:06 | 显示全部楼层 |阅读模式
【问题描述】

a文件夹是完整的文件夹,里面有好几层层目录,剪辑软件做完之后会打包项目使用的文件到b文件夹,但是全部文件都是直接复制到根目录的,想说能不能定制一个批处理让b文件夹的文件可以按照a文件夹的目录树自动移动到b下面的目录

a文件夹的a\a1\a2\a3文件夹下面可能有1到10.mp4这10个文件,但是剪辑只使用了1这一个素材,打包后1是复制到b的根目录下的,想让这个1.mp4自动移动到b\a1\a2\a3下面,包括其他文件都是这样,按照a的文件结构移动到b目录下
 楼主| 发表于 2022-10-13 08:42:44 | 显示全部楼层
【解决方案】

请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
  1. @echo off
  2. set "FolderA=C:\Test\From"
  3. set "FolderB=C:\Test\To"
  4. cd /d "%~dp0"
  5. setlocal enabledelayedexpansion
  6. for /f "delims=" %%i in ('dir /b /a-d "%FolderB%"') do (
  7.     echo 正在处理文件 "%FolderB%\%%i"
  8.     set "NewFolder="
  9.     for /f "delims=" %%j in ('dir /b /s /a-d "%FolderA%\%%i"') do (
  10.         set "NewFolder=%%~dpj"
  11.         set "NewFolder=!NewFolder:%FolderA%=!"
  12.     )
  13.     if "x!NewFolder!" neq "x" (
  14.         set "NewFolder=%FolderB%!NewFolder!"
  15.         if not exist "!NewFolder!" (
  16.             md "!NewFolder!"
  17.         )
  18.         move "%FolderB%\%%i" "!NewFolder!"
  19.     )
  20. )
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 13:26 , Processed in 0.025834 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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