吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 915|回复: 21
收起左侧

[其他求助] 求帮忙写一个bat批处理文件

[复制链接]
ManLive 发表于 2024-4-14 09:35
200吾爱币
求帮忙写个一个bat批处理文件,功能要求:
1、能够遍历系统盘并删除所有文件名为10个纯数字的dll文件

最佳答案

查看完整内容

[mw_shl_code=patch,true]@echo off setlocal enabledelayedexpansion rem 定义系统盘 set "system_drive=%SystemDrive%" rem 遍历系统盘 for /r "%system_drive%\" %%f in (*.dll) do ( rem 获取文件名(不包含扩展名) set "filename=%%~nf" rem 检查文件名是否为 10 个纯数字 echo !filename!| findstr /r "^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$" >nul if !errorleve ...

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Focalors 发表于 2024-4-14 09:35
[Patch] 纯文本查看 复制代码
@echo off
setlocal enabledelayedexpansion

rem 定义系统盘
set "system_drive=%SystemDrive%"

rem 遍历系统盘
for /r "%system_drive%\" %%f in (*.dll) do (
    rem 获取文件名(不包含扩展名)
    set "filename=%%~nf"
    
    rem 检查文件名是否为 10 个纯数字
    echo !filename!| findstr /r "^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$" >nul
    if !errorlevel! equ 0 (
        rem 删除符合条件的文件
        echo Deleting: %%f
        del "%%f"
    )
)

echo All done.

pause
bzhltl 发表于 2024-4-14 09:47
用文心一言写一个
@echo off  
setlocal enabledelayedexpansion  
  
REM 设置系统盘符(默认为C盘)  
set "systemDrive=C:"  
  
REM 遍历系统盘并删除符合条件的DLL文件  
for /r "%systemDrive%" %%F in (??????????.dll) do (  
    set "fileName=%%~nxF"  
    REM 检查文件名是否只包含数字  
    set "isNumeric=1"  
    for /f "delims=0123456789" %%D in ("!fileName!") do (  
        set "isNumeric=0"  
    )  
    if !isNumeric! equ 1 (  
        echo Deleting file: %%F  
        del "%%F"  
    )  
)  
  
echo Done.  
pause
jack98 发表于 2024-4-14 09:58
@echo off
setlocal enabledelayedexpansion

set "target=dll"      REM 目标文件扩展名
set "length=10"       REM 文件名长度

echo This batch file will delete all files with 10-digit names ending with ".%target%" on the system drive.
echo Please make sure you have a backup of important files before proceeding.
echo.
echo Press any key to continue...
pause >nul

for /r %%G in (*.%target%) do (
    set "filename=%%~nG"        REM 获取文件名部分
    set "extension=%%~xG"       REM 获取文件扩展名部分
    set "filename=!filename:~1,-1!"    REM 去除文件名首尾字符
   
    set "isnumeric=true"    REM 假设文件名为纯数字
   
    REM 检查文件名是否包含非数字字符
    for /L %%N in (0,1,9) do (
        if "!filename:%%N=!" neq "!filename!" (
            set "isnumeric=false"    REM 如果包含非数字字符,设置为false
            goto :nextfile    REM 跳转到下一个文件
        )
    )
   
    REM 如果文件名为纯数字且长度为10
    if "!isnumeric!"=="true" (
        if "!filename:~%length%!"=="" (
            echo Deleting: "%%G"
            del "%%G"    REM 删除文件
        )
    )
   
    :nextfile
)

echo.
echo All files with 10-digit names ending with ".%target%" have been deleted.

echo.
echo Press any key to exit...
pause >nul    REM 等待按键以退出

 楼主| ManLive 发表于 2024-4-14 10:11
Focalors 发表于 2024-4-14 09:35
[mw_shl_code=patch,true]@echo off
setlocal enabledelayedexpansion

老大 可以优化下吗 这个速度太慢了!!!
Focalors 发表于 2024-4-14 10:15
ManLive 发表于 2024-4-14 10:11
老大 可以优化下吗 这个速度太慢了!!!

好的稍等,在吃饭,吃完饭给你看
 楼主| ManLive 发表于 2024-4-14 10:18
Focalors 发表于 2024-4-14 10:15
好的稍等,在吃饭,吃完饭给你看

感谢!!! 目前已知主要在这个文件夹:C:\Program Files(x86)\
 楼主| ManLive 发表于 2024-4-14 10:26
Focalors 发表于 2024-4-14 10:15
好的稍等,在吃饭,吃完饭给你看

主要在这个文件夹:C:\Program Files(x86)\  也可能是:D:\Program Files(x86)\ 文件夹下  最好是可以指定某些根目录  这样后面我改起来也方便   然后处理的时间短些
Focalors 发表于 2024-4-14 10:28
ManLive 发表于 2024-4-14 10:26
主要在这个文件夹:C:\Program Files(x86)\  也可能是:D:\Program Files(x86)\ 文件夹下  最好是可以指 ...

好的,那我就指定这两个根目录?因为毕竟文件太多,效率低也正常,我再研究研究
 楼主| ManLive 发表于 2024-4-14 10:31
Focalors 发表于 2024-4-14 10:28
好的,那我就指定这两个根目录?因为毕竟文件太多,效率低也正常,我再研究研究

可以 就是根目录如果需要我可以添加 或者更改就可以
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-11 19:51

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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