DOS批处理小案例应用分享 - 整理桌面

想必大多数办公的同志都有个习惯----往桌面上堆放文件,各种文件。几天下来桌面就杂乱无章,乱七八糟的。能做一个快速清理的功能,是很有实用价值的。比如采用Windows自带的DOS批处理系统,就可快速搭建并应用。如果掌握一些基本要领,还能DIY自定义功能。下面就以一个小例子作学习参考 ------- 基于.bat批处理命令快速汇总所有符合条件的文件放置于指定文件夹中 (图片文件为例)。


 

准备

首先要整理一下思绪,需要用到有关命令:复制、粘贴、剪切、匹配字符串、新建文件夹、删除等。在dos中有copyxcopymovemddel等命令可供选择,还有结构语句如IFFOR等。

 

编写

尝试使用多种做法:

【1】

@echo off

cd\
c:
cd C:\Users\Administrator\Desktop\

if not exist _imgs md _imgs
move .\*.jpg .\_imgs
move .\*.jpeg .\_imgs
move .\*.png .\_imgs
move .\*.gif .\_imgs
move .\*.tga .\_imgs
move .\*.tiff .\_imgs
move .\*.psd .\_imgs
move .\*.jfif .\_imgs

REM pause

上述语法很清晰,先进入desktop桌面文件夹中,然后如果没有_imgs文件夹,就新建,有则忽略,随后移动相关符合后缀名的文件至该目录中。

【2】

@echo off

cd\
c:
cd C:\Users\Administrator\Desktop\

if not exist _imgs md _imgs

for /d %%i in (jpg jpeg gif png tga tiff psd jfif) do move ".\*.%%i" ".\_imgs"

REM pause

同样的流程,只是借了FOR循环语句来处理move操作命令。
使用for /d来检索目录中的路径及文件名,如果符合条件则执行循环语句。

【3】

@echo off

cd\
c:
cd C:\Users\Administrator\Desktop\

if not exist _imgs md _imgs

for /d %%i in (jpg jpeg gif png tga tiff psd jfif) do (
    for %%j in (*.%%i) do (
        echo %%j
        xcopy .\%%j .\_imgs
        if exist .\_imgs\%%j (
        del .\%%j
        ) else (
            echo nocopy
        )

    )

)
REM pause

这种做法更自然、更详细,更容易拓展。嵌套了一层For,判断是否已经复制了相关文件,如果没有复制到就不会删除,有则删除。复制删除语句被拆分细化,逻辑严密。

 

结语

当然啦,读者可以自行更改文件名后缀以供符合不同格式的文件来做整理;还能使用通配符继续缩小文件检索范围,如加前缀或后缀等。很实用的脚本,希望能帮到读者!

PS

数据无价,测试DOS中的del命令需要格外严谨、上心。最好备份好文件,谨防误删。

posted @ 2021-09-29 15:56  SHARP-EYE  阅读(336)  评论(0编辑  收藏  举报