标题: [代码合集] 批处理多个文件夹合并 [打印本页]
作者: FU586097 时间: 2024-8-6 19:56 标题: 批处理多个文件夹合并
本帖最后由 FU586097 于 2024-8-6 20:30 编辑
在同一文件夹里面 有5个文件夹 AAA1 AAA2 AAA3 AAA4 AAA5 合并到BBBBB文件夹 谢谢各位老师帮忙
作者: 77七 时间: 2024-8-6 22:12
- @echo off
- cd /d "%~dp0"
- for %%a in (AAA1 AAA2 AAA3 AAA4 AAA5) do (
- robocopy "%%a" "BBBBB" /s
- )
- pause
复制代码
作者: FU586097 时间: 2024-8-6 22:44
回复 2# 77七
谢谢老师帮忙 太好用了
但是 能否设置各个文件夹的路径吗 非常感谢 如下
源文件夹
I:\内部存储\AAA1
I:\内部存储\AAA2
I:\内部存储\AAA3
I:\内部存储\AAA4
I:\内部存储\AAA5
目标文件夹
E:\BBBBB
作者: 77七 时间: 2024-8-6 23:05
回复 3# FU586097
- @echo off
- rem 保存为ansi
- cd /d "%~dp0"
- for %%a in (AAA1 AAA2 AAA3 AAA4 AAA5) do (
- robocopy "I:\内部存储\%%a" "E:\BBBBB" /s
- )
- pause
复制代码
作者: FU586097 时间: 2024-8-6 23:20
回复 4# 77七
老师 谢谢 我粗心了 实际上是这样的 麻烦您改一下 真不好意思
I:\内部存储\DCIM\Camera
I:\内部存储\Pictures\WeiXin
I:\内部存储\Pictures\Screenshots
I:\内部存储\seaweather
E:\BBBBB
作者: 77七 时间: 2024-8-6 23:29
回复 5# FU586097
- @echo off
- rem 保存为ansi
- cd /d "%~dp0"
- for %%a in ("I:\内部存储\DCIM\Camera" "I:\内部存储\Pictures\WeiXin" "I:\内部存储\Pictures\Screenshots" "I:\内部存储\seaweather") do (
- robocopy "%%~a" "E:\BBBBB" /s
- )
- pause
复制代码
不必每次都评分
作者: FU586097 时间: 2024-8-6 23:41
回复 6# 77七
好的 谢谢老师 太好 用了 谢谢 感谢你帮忙
作者: qixiaobin0715 时间: 2024-8-7 08:20
感觉像这样的指定文件夹复制或移动的工作通过代码修改而实现,还不如直接复制或移动,两者所花费的时间应当差不多。
作者: FU586097 时间: 2024-8-15 10:53
本帖最后由 FU586097 于 2024-8-15 10:55 编辑
回复 8# qixiaobin0715
师傅 在吗 这个问题只能麻烦你帮忙了
@echo off
rem 保存为ansi
cd /d "%~dp0"
for %%a in ("I:\内部存储\DCIM\Camera" "I:\内部存储\Pictures\WeiXin" "I:\内部存储\Pictures\Screenshots" "I:\内部存储\seaweather") do (
robocopy "%%~a" "E:\BBBBB" /s
)
pause
上面"I:\内部存储\DCIM\Camera" Camera里面有一个 cache文件夹 能排除这个cache文件夹进行复制移动吗 谢谢
因为cache属性问题 不能隐藏 不好做
作者: qixiaobin0715 时间: 2024-8-15 11:44
回复 9# FU586097
也可以自己研究一下:
http://bbs.bathome.net/thread-6283-1-1.html
作者: FU586097 时间: 2024-8-15 14:42
回复 12# qixiaobin0715
哦 我以为是77七 弄错了 不好意思
作者: FU586097 时间: 2024-8-15 14:44
回复 6# 77七
师傅 你好 我弄错人 找到别人去了 麻烦你帮忙一下
师傅 在吗 这个问题只能麻烦你帮忙了
@echo off
rem 保存为ansi
cd /d "%~dp0"
for %%a in ("I:\内部存储\DCIM\Camera" "I:\内部存储\Pictures\WeiXin" "I:\内部存储\Pictures\Screenshots" "I:\内部存储\seaweather") do (
robocopy "%%~a" "E:\BBBBB" /s
)
pause
上面"I:\内部存储\DCIM\Camera" Camera里面有一个 cache文件夹 能排除这个cache文件夹进行复制移动吗 谢谢
因为cache属性问题 不能隐藏 不好做
作者: 77七 时间: 2024-8-15 15:27
回复 12# FU586097
- robocopy "%%~a" "E:\BBBBB" /s /xd "I:\内部存储\DCIM\Camera\cache"
复制代码
作者: FU586097 时间: 2024-8-15 15:35
回复 13# 77七
师傅 你好 不是这个意思
Camera里面有一个子文件夹(cache) 不要复制移动它
作者: 77七 时间: 2024-8-15 15:55
回复 14# FU586097
不是这个关系吗?I:\内部存储\DCIM\Camera\cache
是这样 I:\内部存储\DCIM\Camera\111\cache?
作者: FU586097 时间: 2024-8-15 16:17
回复 15# 77七
师傅 是这样 Camera文件夹里面有很多个文件夹或者文件相片之类的 其中包含cache这个文件夹在里面 复制移动其它的 但是不要复制移动cache这个文件夹
作者: qixiaobin0715 时间: 2024-8-15 16:25
试试这样:- robocopy "%%~a" "E:\BBBBB" /s /xd "cache"
复制代码
作者: 77七 时间: 2024-8-15 16:32
回复 16# FU586097
把代码替换原robocopy那行,没有效果吗?
作者: qixiaobin0715 时间: 2024-8-15 16:40
更精确一些,按6楼代码修改:- @echo off
- for %%a in ("I:\内部存储\DCIM\Camera" "I:\内部存储\Pictures\WeiXin" "I:\内部存储\Pictures\Screenshots" "I:\内部存储\seaweather") do (
- if not "%%~nxa"== "Camera" (
- robocopy "%%~a" "E:\BBBBB" /s
- ) else (
- robocopy "%%~a" "E:\BBBBB" /s /xd "cache"
- )
- )
- pause
复制代码
作者: aloha20200628 时间: 2024-8-15 16:46
本帖最后由 aloha20200628 于 2024-8-15 19:07 编辑
回复 16# FU586097
试试 xcopy 方法...
- @echo off &set/p="\cache\"<nul>"_e.lst" &for %%a in (
- "I:\内部存储\DCIM\Camera" "I:\内部存储\Pictures\WeiXin" "I:\内部存储\Pictures\Screenshots" "I:\内部存储\seaweather"
- ) do (xcopy "%%a" "e:\BBBBB\" /ysi /exclude:_e.lst)
- del/q "_e.lst"&pause&exit/b
复制代码
作者: FU586097 时间: 2024-8-15 16:59
回复 18# 77七
师傅 他们的都不能用 是否在目标文件夹e:\BBBBB里面删除cache这个文件夹 谢谢
作者: qixiaobin0715 时间: 2024-8-15 17:03
cache属性是?
作者: FU586097 时间: 2024-8-15 17:04
回复 22# qixiaobin0715
文件夹
作者: 77七 时间: 2024-8-15 17:13
本帖最后由 77七 于 2024-8-16 05:43 编辑
- @echo off
- rem 保存为ansi
- attrib -a "I:\内部存储\DCIM\Camera\cache\*" /s /d
- for %%a in ("I:\内部存储\DCIM\Camera" "I:\内部存储\Pictures\WeiXin" "I:\内部存储\Pictures\Screenshots" "I:\内部存储\seaweather") do (
- robocopy "%%~a" "E:\BBBBB" /s /a
- )
- attrib +a "I:\内部存储\DCIM\Camera\cache\*" /s /d
- pause
复制代码
作者: FU586097 时间: 2024-8-15 17:27
回复 24# 77七
师傅 谢谢你
作者: aloha20200628 时间: 2024-8-15 19:05
本帖最后由 aloha20200628 于 2024-8-15 21:07 编辑
回复 21# FU586097
关于排除目录文件的有效用法,虽然 xcopy /? 已有说明,但 ‘排除项列表文件名不要用双括号包裹’ 这个关键点,还是从老帖(早至13年前)中揭出...
已订正20楼代码,楼主可试一试...
作者: aloha20200628 时间: 2024-8-15 22:18
本帖最后由 aloha20200628 于 2024-8-15 22:56 编辑
回复 21# FU586097
再查了老帖有关 ‘robocopy 排除目录文件无效’ 的解法,一个关键点是 /xd 参数须为全路径,以下代码已测试通过...- @echo off &for %%a in (
- "I:\内部存储\DCIM\Camera" "I:\内部存储\Pictures\WeiXin" "I:\内部存储\Pictures\Screenshots" "I:\内部存储\seaweather"
- ) do (robocopy "%%a" "c:\temp\BBBBB" /ns /nc /nfl /njh /njs /s /xd "d:\@uc\DCIM\Camera\cache")
- pause&exit/b
复制代码
如要关闭所有进程报告,可用以下代码- @echo off &for %%a in (
- "I:\内部存储\DCIM\Camera" "I:\内部存储\Pictures\WeiXin" "I:\内部存储\Pictures\Screenshots" "I:\内部存储\seaweather"
- ) do (robocopy "%%a" "c:\temp\BBBBB" /s /xd "d:\@uc\DCIM\Camera\cache")>nul
- pause&exit/b
复制代码
作者: FU586097 时间: 2024-8-15 23:56
回复 24# 77七
师傅 你好 还是不能用 谢谢
作者: 77七 时间: 2024-8-16 05:44
回复 28# FU586097
代码已修改,应该没问题了
作者: FU586097 时间: 2024-8-16 07:03
本帖最后由 FU586097 于 2024-8-16 07:05 编辑
回复 29# 77七
师傅 早上好 还没好 不能用 麻烦你看一下 谢谢
@echo off
rem 保存为ansi
attrib -a "I:\内部存储\DCIM\Camera\cache\*" /s /d
for %%a in ("I:\内部存储\DCIM\Camera" "I:\内部存储\Pictures\WeiXin" "I:\内部存储\Pictures\Screenshots" "I:\内部存储\seaweather") do (
robocopy "%%~a" "E:\BBBBB" /s /a
)
attrib +a "I:\内部存储\DCIM\Camera\cache\*" /s /d
pause
能不能增加 在BBBBB里面删除cache 就行
作者: 77七 时间: 2024-8-16 07:16
回复 30# FU586097
- rd /s /q "E:\BBBBB\cache"
复制代码
加到6楼第6行后面
作者: FU586097 时间: 2024-8-16 07:28
回复 31# 77七
师傅 谢谢 好了 达到效果了 非常感谢你
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |