Board logo

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

作者: holley    时间: 2021-11-9 13:50     标题: 【已解决】求助批处理查找带关键字的文件夹并复制备份

本帖最后由 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的文件夹但并没有开始复制所有子目录和文件
作者: Batcher    时间: 2021-11-9 20:06

回复 1# holley


    第2行代码结尾的 |find "default" 是想实现什么功能?
作者: holley    时间: 2021-11-12 11:58

回复 2# Batcher
之前发现复制整个Profiles文件夹太大了,耗时过长。于是想根据配置文件信息只找名称中带default的文件夹或文件来进行备份。
作者: Batcher    时间: 2021-11-12 14:07

回复 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. )
复制代码

作者: holley    时间: 2021-11-15 14:20

回复 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. )
复制代码

作者: Batcher    时间: 2021-11-15 17:30

回复 5# holley


dir /ad /b /s "%LOCALAPPDATA%\Mozilla\Firefox\Profiles" | find "default"
看下这个命令的结果里面有哪些是需要排除的
作者: holley    时间: 2021-11-16 13:09

回复 6# Batcher

没有要排除的,,,只是之前的脚本会把wad6h6la.default-esr-1599013597748文件夹里的文件夹再次复制出来一遍。

作者: Batcher    时间: 2021-11-16 13:35

回复 7# holley


    没看懂你想表达什么意思,要不你试试换个方式描述需求?
作者: holley    时间: 2021-11-18 13:01

本帖最后由 holley 于 2021-11-18 13:06 编辑

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


注:上面这一些文件夹都是2个带default的文件夹里面重复复制出来的。
作者: Batcher    时间: 2021-11-18 15:00

回复 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. )
复制代码

作者: holley    时间: 2021-11-19 09:24

回复 10# Batcher
非常感谢!达到我的目的了,能否帮我解释一下:findstr /v "default.*\\\\"  
日常很少遇到find后还进一步findstr的例子。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2