【已解决】如何遍历所有分区并删除指定的文件夹

查看 152|回复 11
作者:wsx710904   
   
使用ACDSee旗舰版,每次修图都会把原图备份在一个隐含的文件夹,久而久之就占用很大的硬盘空间。想不让软件做备份,设置里没找到相应的选项。网上找了个代码,只能删除指定分区的文件夹,比如D盘。哪位大侠能帮我修改一下这个代码,达到能遍历所有分区并删除指定的文件件,先感谢。
[ol]@echo off
rem for /f "delims=" %%a in ('dir /b/s/ad d:\[原始文件] d:\[Originals] d:\[原始]')do echo rd /s /q "%%a" 2>nul
for /f "delims=" %%a in ('dir /b/s/ad d:\[原始文件] d:\[Originals] d:\[原始]')do  rd /s /q "%%a" 2>nul
pause[/ol]复制代码
谢谢各位的解答,已解决:
[ol]@echo off
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
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
pause[/ol]复制代码

代码, 文件, 分区

h404bi   
不知道自己想的对不对。 如果彻底不需要,个人的花可能会选择做个目录或软连接进虚拟内存盘,不用次次都手动。
imycc   

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

谢谢回复。这个备份文件夹会在图片当前目录自动生成
ribble   
我的测试结果是酱紫的:它会在某个分区根目录建立[原始文件]文件夹,隐藏属性。
是固定的,不会再建别的,并且用一个空文件[原始文件],他就不会再备份了。
Ailen   
   

窄口牛 发表于 2024-2-20 16:54
我的测试结果是酱紫的:它会在某个分区根目录建立[原始文件]文件夹,隐藏属性。
是固定的,不会再建别的, ...

谢谢大佬回复。不知您用的那个版本,我用的是14和17,它所创建的文件夹,均在照片所在的目录里。
秦国楚公   
推荐使用XnViewMP1.64,非常好用,特别适合从acdsee迁移过来,不过需要自定义按自己的习惯来重新设置一下。
如果仍然用遍历硬盘,可以参照我下面这个批处理中的echo list vol |diskpart|find "磁盘分区"'来取卷信息。
[ol]
@echo off
set debug=0
setlocal enabledelayedexpansion
set hd=MBR
for /f "tokens=2,8" %%i in ('echo list disk ^|diskpart') do (
        set disks=%%i
        if "%%j"=="*" set hd=GPT
        )
set /a disks=%disks% + 1
if %debug%==1 echo 磁盘引导方式是:%hd%,共有%disks%只磁盘
set boot=没找到
set system=没找到
for /f "tokens=2,3,6,7,8" %%i in ('echo list vol ^|diskpart^|find "启动"') do (
        set disk_c=%%i
        set system=%%j
        if "%%l"=="TB" set c_size_0=000000
        if "%%l"=="GB" set c_size_0=000
        if "%%l"=="MB" set c_size_0=
        set c_size=%%k%c_size_0%
        if "%%m"=="TB" set c_size_0=000000
        if "%%m"=="GB" set c_size_0=000
        if "%%m"=="MB" set c_size_0=
        if "%%k"=="磁盘分区" set c_size=%%l%c_size_0%
        )
for /f "tokens=2" %%i in ('echo list vol ^|diskpart^|find "系统"') do set boot=%%i
if %debug%==1 echo 启动分区号是%boot%,系统安装到了第%disk_c%个分区,即%system%盘,大小是%c_size%兆
for /f "tokens=2" %%i in ('echo list vol^|diskpart^|find "磁盘分区"') do set vols=%%i
set /a vols=%vols% + 1
if %debug%==1 echo 硬盘共有%vols%个分区
set disk_u=没找到
for /f "tokens=3" %%i in ('echo list vol^|diskpart^|find "可移动"') do set disk_u=%%i& goto U_NEXT
:U_NEXT
if %debug%==1 echo 第一个U盘:%disk_u%
set udisks=0
for /f "tokens=3" %%i in ('echo list vol^|diskpart^|find "可移动"') do set /a udisks=!udisks! + 1
if %debug%==1 echo 共有%udisks%个U盘
echo 共有%disks%只磁盘,共有%udisks%个U盘,第一只U盘:%disk_u%。硬盘共有%vols%个分区,磁盘引导方式是:%hd%,
echo 启动分区号是%boot%,系统安装到了第%disk_c%个分区,即%system%盘,大小是%c_size%兆
[/ol]复制代码
山人来也   

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

感谢老大提供的思路,我弄弄看。
lepig   
学习学习
wadewej   
2022旗舰版15。
bigmouse   
ganxiefenxiang
您需要登录后才可以回帖 登录 | 立即注册

返回顶部