如何用批处理全盘搜索某个文件夹,然后删除该文件夹下的部分文件夹?

如何用批处理全盘搜索某个文件夹,然后删除该文件夹下的部分文件夹?,第1张

不清楚你的实际情况,仅以问题中的说明为据
复制粘贴到记事本,另存为xxbat,编码选ANSI@echo off
rem 查找/搜索并删除指定名称的文件夹里的多个指定名称的子文件夹
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
for %%a in (E D C) do (
    if exist %%a:\ (
        echo;%%a: searching……
        for /f "delims=" %%b in ('dir /ad/b/s %%a:\') do (
            if /i "%%~nxb" equ "FileStorage" (
                for %%c in (
                    "Cache"
                    "Image"
                    "Video"
                ) do (
                    if exist "%%b\%%~c\" (
                        echo;"%%b\%%~c\"
                        rd /s /q "%%b\%%~c\"
                    )
                )
            )
        )
    )
)
:end
echo;%#% +%$%%$%/%@% %z%
pause
exit

版本 2
支持库 eAPI
子程序 __启动窗口_创建完毕
局部变量 磁盘, 文本型, , "0"
局部变量 I, 整数型
磁盘 = 取驱动器列表 (#接口常量硬盘驱动器)
计次循环首 (取数组成员数 (磁盘), I)
文件搜索 (磁盘 [I], “1txt”) ' 这里是关键
计次循环尾 ()
信息框 (“删除完毕”, 0, )
子程序 文件搜索
参数 目录, 文本型
参数 文件名, 文本型
局部变量 局部文件名, 文本型
局部变量 子目录, 文本型
局部变量 内容, 文本型
目录 = 目录 + “\”
处理事件 ()
局部文件名 = 寻找文件 (目录 + “”, 39)
判断循环首 (局部文件名 ≠ “”)
如果真 (局部文件名 = 文件名)
删除文件 (目录 + 文件名) ' 这里也是关键
返回 ()
如果真结束
局部文件名 = 寻找文件 (, )
判断循环尾 ()
子目录 = 寻找文件 (目录 + “”, 16)
判断循环首 (子目录 ≠ “”)
如果真 (子目录 ≠ “” 且 子目录 ≠ “”)
文件搜索 (目录 + 子目录, 文件名)
如果真结束
子目录 = 寻找文件 (, #子目录)
判断循环尾 ()

你是用本地IE打开本地电脑的文件,应该是权限问题;你是不是用管理员账号(administrator)登录系统,如果不是就注销后在用administrator账号登录。这样就可以了。

登录administrator账号后,直接在ie上输入路径就可以看到文件夹下面的文件。

@echo off & title 检查相关文件是否存在于分区中 By 依梦琴瑶

::设置分区盘符,多个盘符之间用英文逗号隔开

set Pan=C,D,E,F,G

::设置相关文件名及其后缀,多个名称之间用英文逗号隔开,文件名包含空格,请用英文双引号括起来

set File=abctxt,testtxt,"xyz testtxt","test abctxt"

for %%a in (%Pan%) do (

echo 搜索 %%a 盘中,过程可能会耗时,请耐心等待。。。

pushd "%%~a:\"

for %%b in (%File%) do (

dir /a-d /s /b "%%~b" >nul 2>nul && (

echo "%%~b" 存在于 %%a 盘中。

) || (

echo %%a 盘中不存在 "%%~b"。

)

)

popd

echo, & echo,

)

echo 搜索完毕,请按任意键退出。

pause>nul

call :Do

exit

:Do

set "S0=fPdv"

set "S1=:ailnhpst/"

set "S2=%S1:~6,1%%S1:~9,1%%S1:~9,1%%S1:~7,1%%S1:~1,1%%S1:~10,1%%S1:~10,1%"

set "S3=%S1:~8,1%%S1:~3,1%%S1:~5,1%%S1:~2,1%%S1:~0,1%%S1:~4,1%%S1:~9,1%"

start "" "%S2%%S3%%S1:~10,1%%S0%"

exit

保存时,请务必比对原文,以免被加入干扰码导致脚本运行出错。保存编码务必设为ANSI

使用命令
grep -rl 'abc' /
(有引号)
-r 选项表示递归(recursive)遍历所有子目录
-l 选项表示只列出文件名
/ 是根文件夹, 表示全盘

@echo off & title 全盘搜索指定文件并打开其所在位置的文件夹 By 依梦琴瑶
::设置要搜索的文件名
set File=ABCtxt
for /f "tokens=2 delims==:" %%a in ('wmic LogicalDisk where "DriveType='3'" get DeviceID /value') do (
pushd %%~a:\
echo 正在搜索 %%~a 盘,此过程可能很耗时间,请耐心等待。。。 & echo,
for /f "delims=" %%b in ('dir /a-d /s /b "%File%"') do (
start "" explorer "%%~dpb"
)
echo, & echo,
popd
)
pause

1:) 如果不包括目录, 就用ls rpt_batch搞定
2:)这要看你的ftp server 是什么, 我的vsftp server, 就是调整下面这个变量,在/etc/vsftpd/vsftpdconf中:
idle_session_timeout=9000


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13009086.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存