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

[文件操作] 【已解决】求助批处理查找带关键字的文件夹并复制备份

[复制链接]
发表于 2021-11-9 13:50:24 | 显示全部楼层 |阅读模式
本帖最后由 holley 于 2021-11-19 09:33 编辑

起因:想手动备份火狐的配置文件,查看到相关路径如下:

初步写了一下:
  1. for /f "delims=" %%a in ('dir /ad /b /s %LOCALAPPDATA%\Mozilla\Firefox\Profiles') do (
  2. xcopy %LOCALAPPDATA%\Mozilla\Firefox\Profiles\%%~a Firefox收藏夹\root\%%~a\ /s/y/i|find "default"
  3. )
复制代码
提示找不到文件,不知道什么鬼?感觉到实际上已经找到了带default的文件夹但并没有开始复制所有子目录和文件
发表于 2021-11-9 20:06:54 | 显示全部楼层
回复 1# holley


    第2行代码结尾的 |find "default" 是想实现什么功能?
 楼主| 发表于 2021-11-12 11:58:09 | 显示全部楼层
回复 2# Batcher
之前发现复制整个Profiles文件夹太大了,耗时过长。于是想根据配置文件信息只找名称中带default的文件夹或文件来进行备份。
发表于 2021-11-12 14:07:34 | 显示全部楼层
回复 3# holley


把find挪到dir后面试试
  1. for /f "delims=" %%a in ('dir /ad /b /s "%LOCALAPPDATA%\Mozilla\Firefox\Profiles" ^| find "default"') do (
  2.     xcopy /s /y /i "%LOCALAPPDATA%\Mozilla\Firefox\Profiles\%%~a" "Firefox收藏夹\root\%%~a"
  3. )
复制代码
 楼主| 发表于 2021-11-15 14:20:33 | 显示全部楼层
回复 4# Batcher
改了一下,现在倒是可以跑起来了,,,但找到目录后 它会把目录里面的文件夹也复制出来???怎么排除?
  1. for /f "delims=" %%a in ('dir /ad /b /s "%LOCALAPPDATA%\Mozilla\Firefox\Profiles" ^| find "default"') do (
  2.         xcopy /s /y /i %%~a "backups\Firefox收藏夹\root\%%~nxa"
  3. )
复制代码
发表于 2021-11-15 17:30:51 | 显示全部楼层
回复 5# holley


dir /ad /b /s "%LOCALAPPDATA%\Mozilla\Firefox\Profiles" | find "default"
看下这个命令的结果里面有哪些是需要排除的
 楼主| 发表于 2021-11-16 13:09:22 | 显示全部楼层
回复 6# Batcher

没有要排除的,,,只是之前的脚本会把wad6h6la.default-esr-1599013597748文件夹里的文件夹再次复制出来一遍。
发表于 2021-11-16 13:35:05 | 显示全部楼层
回复 7# holley


    没看懂你想表达什么意思,要不你试试换个方式描述需求?
 楼主| 发表于 2021-11-18 13:01:31 | 显示全部楼层
本帖最后由 holley 于 2021-11-18 13:06 编辑

回复 8# Batcher
我单纯就是想备份图示这两个路径的配置文件,但显然带default的几个文件夹里都有随机字符,使用查找关键字的方式 复制备份 会备份配置文件夹,但同时也会循环将配置文件夹里的文件夹又复制出来到备份文件夹同级目录。这种解释算清楚吗?
我目前暂时直接备份的整个profiles。


注:上面这一些文件夹都是2个带default的文件夹里面重复复制出来的。
发表于 2021-11-18 15:00:45 | 显示全部楼层
回复 9# holley
  1. for /f "delims=" %%a in ('dir /ad /b /s "%LOCALAPPDATA%\Mozilla\Firefox\Profiles" ^| find "default" ^| findstr /v "default.*\\\"') do (
  2.     xcopy /s /y /i "%LOCALAPPDATA%\Mozilla\Firefox\Profiles\%%~a" "Firefox收藏夹\root\%%~a"
  3. )
复制代码
 楼主| 发表于 2021-11-19 09:24:19 | 显示全部楼层
回复 10# Batcher
非常感谢!达到我的目的了,能否帮我解释一下:findstr /v "default.*\\\\"  
日常很少遇到find后还进一步findstr的例子。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 21:52 , Processed in 0.033232 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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