无忧启动论坛

标题: 【已解决】如何遍历所有分区并删除指定的文件夹 [打印本页]

作者: zlq_hysy    时间: 2024-2-20 15:52
标题: 【已解决】如何遍历所有分区并删除指定的文件夹
本帖最后由 zlq_hysy 于 2024-2-20 21:40 编辑

使用ACDSee旗舰版,每次修图都会把原图备份在一个隐含的文件夹,久而久之就占用很大的硬盘空间。想不让软件做备份,设置里没找到相应的选项。网上找了个代码,只能删除指定分区的文件夹,比如D盘。哪位大侠能帮我修改一下这个代码,达到能遍历所有分区并删除指定的文件件,先感谢。

  1. @echo off
  2. rem for /f "delims=" %%a in ('dir /b/s/ad d:\[原始文件] d:\[Originals] d:\[原始]')do echo rd /s /q "%%a" 2>nul
  3. for /f "delims=" %%a in ('dir /b/s/ad d:\[原始文件] d:\[Originals] d:\[原始]')do  rd /s /q "%%a" 2>nul
  4. pause
复制代码

谢谢各位的解答,已解决:
  1. @echo off
  2. set a=c d e f g h i j k l m n o p q r s t u v w x y z
  3. for %%i  in (%a%) do if exist %%i: for /f "delims=" %%b in ('dir /b/s/ad %%i:\[原始文件] %%i:\[Originals] %%i:\[原始]')do  rd /s /q "%%b" 2>nul
  4. pause
复制代码



作者: 201027149    时间: 2024-2-20 16:13
不知道自己想的对不对。 如果彻底不需要,个人的花可能会选择做个目录或软连接进虚拟内存盘,不用次次都手动。
作者: zlq_hysy    时间: 2024-2-20 16:31
201027149 发表于 2024-2-20 16:13
不知道自己想的对不对。 如果彻底不需要,个人的花可能会选择做个目录或软连接进虚拟内存盘,不用次次都手 ...

谢谢回复。这个备份文件夹会在图片当前目录自动生成
作者: 窄口牛    时间: 2024-2-20 16:54
我的测试结果是酱紫的:它会在某个分区根目录建立[原始文件]文件夹,隐藏属性。
是固定的,不会再建别的,并且用一个空文件[原始文件],他就不会再备份了。
作者: zlq_hysy    时间: 2024-2-20 19:01
本帖最后由 zlq_hysy 于 2024-2-20 19:05 编辑
窄口牛 发表于 2024-2-20 16:54
我的测试结果是酱紫的:它会在某个分区根目录建立[原始文件]文件夹,隐藏属性。
是固定的,不会再建别的, ...

谢谢大佬回复。不知您用的那个版本,我用的是14和17,它所创建的文件夹,均在照片所在的目录里。


作者: 9zhmke    时间: 2024-2-20 19:06
推荐使用XnViewMP1.64,非常好用,特别适合从acdsee迁移过来,不过需要自定义按自己的习惯来重新设置一下。
如果仍然用遍历硬盘,可以参照我下面这个批处理中的echo list vol |diskpart|find "磁盘分区"'来取卷信息。

  1. [url=home.php?mod=space&uid=336905]@echo[/url] off
  2. set debug=0
  3. setlocal enabledelayedexpansion
  4. set hd=MBR
  5. for /f "tokens=2,8" %%i in ('echo list disk ^|diskpart') do (
  6.         set disks=%%i
  7.         if "%%j"=="*" set hd=GPT
  8.         )
  9. set /a disks=%disks% + 1
  10. if %debug%==1 echo 磁盘引导方式是:%hd%,共有%disks%只磁盘

  11. set boot=没找到
  12. set system=没找到
  13. for /f "tokens=2,3,6,7,8" %%i in ('echo list vol ^|diskpart^|find "启动"') do (
  14.         set disk_c=%%i
  15.         set system=%%j
  16.         if "%%l"=="TB" set c_size_0=000000
  17.         if "%%l"=="GB" set c_size_0=000
  18.         if "%%l"=="MB" set c_size_0=
  19.         set c_size=%%k%c_size_0%
  20.         if "%%m"=="TB" set c_size_0=000000
  21.         if "%%m"=="GB" set c_size_0=000
  22.         if "%%m"=="MB" set c_size_0=
  23.         if "%%k"=="磁盘分区" set c_size=%%l%c_size_0%
  24.         )
  25. for /f "tokens=2" %%i in ('echo list vol ^|diskpart^|find "系统"') do set boot=%%i
  26. if %debug%==1 echo 启动分区号是%boot%,系统安装到了第%disk_c%个分区,即%system%盘,大小是%c_size%兆

  27. for /f "tokens=2" %%i in ('echo list vol^|diskpart^|find "磁盘分区"') do set vols=%%i
  28. set /a vols=%vols% + 1
  29. if %debug%==1 echo 硬盘共有%vols%个分区

  30. set disk_u=没找到
  31. for /f "tokens=3" %%i in ('echo list vol^|diskpart^|find "可移动"') do set disk_u=%%i& goto U_NEXT
  32. :U_NEXT
  33. if %debug%==1 echo 第一个U盘:%disk_u%
  34. set udisks=0
  35. for /f "tokens=3" %%i in ('echo list vol^|diskpart^|find "可移动"') do set /a udisks=!udisks! + 1
  36. if %debug%==1 echo 共有%udisks%个U盘

  37. echo 共有%disks%只磁盘,共有%udisks%个U盘,第一只U盘:%disk_u%。硬盘共有%vols%个分区,磁盘引导方式是:%hd%,
  38. echo 启动分区号是%boot%,系统安装到了第%disk_c%个分区,即%system%盘,大小是%c_size%兆
复制代码



作者: zlq_hysy    时间: 2024-2-20 19:31
9zhmke 发表于 2024-2-20 19:06
推荐使用XnViewMP1.64,非常好用,特别适合从acdsee迁移过来,不过需要自定义按自己的习惯来重新设置一下。 ...

感谢老大提供的思路,我弄弄看。
作者: nathan6498    时间: 2024-2-20 19:40
学习学习
作者: 窄口牛    时间: 2024-2-20 20:16
2022旗舰版15。
作者: tilltotell007    时间: 2024-2-20 22:05
ganxiefenxiang
作者: wsx710904    时间: 2024-2-21 04:28
感謝您~好人一生平安~
作者: yyz2191958    时间: 2024-2-21 08:02
恭喜恭喜问题解决
作者: wang1126    时间: 2024-2-28 05:50
学习学习
作者: xwuyun.cn    时间: 2024-3-8 14:11
谢谢分享
作者: alins    时间: 2024-3-8 14:32
学习学习学习
作者: 紧急追踪    时间: 2024-3-11 00:09
感谢分享
作者: wsx710904    时间: 2024-3-11 00:17
感謝您的分享 回覆留言看看喔





欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3