虽然现在全盘搜索相关的实用软件很多也很强大,但是在手头上无法下载的时候,批处理这个"资深前辈"又得派上用场了,接下来介绍的代码均为全盘范围的批处理:
案例一、列出我的电脑中的所有硬盘分区
1
2
3
4
5
6
|
@echo off
title 列出硬盘分区
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
if exist %%i:\ echo %%i
)
pause>nul
|
简单说明:代码使用 for 依次循环读取 C 到 Z,并加上:\进而使用 if exist 判断路径是否存在,存在则打印到屏幕上。
案例二、全盘查找某个文件
(来自我的百度回答)
知友问:
不知道文件路径,只知道名字,怎么制作 bat 运行文件?
如题,要做 1 个打开文件的 bat,知道是用 star +路径。但是我没有路径只知道名字,而且我这个电脑没有那个文件。是学校的机子。。。求一个指令可以搜索直接运行,就像菜单中的”运行“那样
我给出的代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
@echo off
:start
cls
set /p filename=请输入你要打开的文件名(包括后缀):
echo=
echo 全盘查找%filename%中,请稍后......
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
if exist %%i:\ pushd %%i:\ && for /r . %%a in (%filename%) do (
if exist "%%a" start "" "%%a"
)
)
echo %filename%全盘查找完毕,任意键开始下一个文件的查找......
pause>nul
goto start
|
简单说明:在案例一的基础上嵌套了一个 for /r 遍历目录循环,但存在某一个分区的时候,则执行内嵌的 for 循环,遍历分区搜索关键字,若找到含有关键字的文件则打开(其实那个判断文件是否存在有点多此一举,为了代码不出错我还是加上了)。
案例三、全盘搜索并删除包含关键字的所有文件
(来自我的百度回答)
知友问:
Dos 批量删除文件名带有~$的.doc 文件 请看问题内容
我的电脑里大量的带有~$的.doc 文件
想用 DOS 命令手动删除
文件夹搜 这个办法的 别凑热闹
回答 修改 Offic 先选项 也别凑热闹
我给出的答案:
以下代码保存为 bat 文件,执行后全盘搜索符合你要求的 doc 文件,然后删除,并将删除结果写到批处理同目录的 result.log,为避免误删除,已将删除功能屏蔽,仅显示目标文件具体位置,若要让删除生效,直接将代码第四行的【echo】删除即可,希望对你有用:
1
2
3
4
5
6
|
@echo off
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
if exist %%i:\ pushd %%i:\ && for /r . %%a in (*~$*.doc) do (
echo del /s /q /f "%%a"
) )>>result.log
pause
|
简单说明:此代码和案例二非常相似,只是这个代码中不是匹配完整文件名,而是前后使用*号包裹关键字进行通配搜索。
更多案例,待后续更新,敬请期待!若有其他需求,请留言~