批处理创建Everything移动硬盘离线文件列表
Everything用了快10年,今天才发现如何用文件列表功能高效率管理移动硬盘里的文件
这篇文章适合有大量移动硬盘的动画党。
保存文末的bat脚本,根据你的习惯,设置以下变量
efupath 文件列表保存目录
exepath Everything.exe 工作目录
Drv_List 需要检查的磁盘盘符
插上你的移动硬盘,设置磁盘卷标,不要有空格和各种特殊字符,运行脚本生成efu文件,然后换下一块硬盘重复操作
打开Everything-选项-索引-文件列表,添加刚生成的efu文件,勾选监控变化
以后每次移动硬盘文件变更以后,直接运行脚本就会自动更新列表文件
搜索结果如图:缺点是即便插上移动硬盘也不能直接打开文件,因为盘符不是正确的单个字母。而且部分文件夹会被识别成0字节的文件。
其余高级操作可以看看这个文章:
@echo off
setlocal enabledelayedexpansion
:: 这个文件使用ansi编码,如果你遇到编码问题无法运行,删除中文注释
::##############################################################################
:: Everything创建移动硬盘文件列表 仅测试了版本 V1.4.1.1022 (x64)
:: 为磁盘设置卷标, 卷标优先作为 磁盘别名
:: 没有卷标的, 可以在根目录创建文本文件 DiskNameAlias
:: 里面的第一行文本会作为 磁盘别名, 不能包含特殊字符, 中文字符必须是UTF-8编码
:: 脚本会在 efupath 里生成 磁盘别名.efu
:: 运行脚本后, 在 Everything选项-索引-文件列表 中添加脚本生成的 磁盘别名.efu 文件
:: 推荐在 Everything选项-索引-NTFS 中勾选 自动移除脱机卷
::用户设置:文件列表保存目录
set efupath=D:\usr\Everything
::用户设置:Everything.exe 工作目录
set exepath=D:\usr\Everything
::用户设置:磁盘别名文件的名称
set fname=DiskNameAlias
::用户设置:检查以下磁盘盘符, 删除你不想检测的固定盘符
::A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
set Drv_List=G H I J K L M N O P Q R S T U V W
::##############################################################################
chcp 65001
set path=%exepath%;%path%
for %%i in (%Drv_List%) do (
if exist %%i:\ (
set DRV=%%i
set DRV_LABEL=
set DRV_ALIAS=
::check if diskalias file exist
if exist %%i:\%fname% set /p DRV_ALIAS=<%%i:\%fname%
::check if drv label exist
for /f "tokens=6" %%l in ('vol %%i:') do if not "%%l"=="no" if not "%%l"=="" set DRV_LABEL=%%l
echo DRV:!DRV! LABEL: !DRV_LABEL! ALIAS:!DRV_ALIAS!
if DEFINED DRV_LABEL (
call:make_efu !DRV! !DRV_LABEL!
) else (
if DEFINED DRV_ALIAS call:make_efu !DRV! !DRV_ALIAS!
::chcp 936
goto :EOF
:make_efu
:: para1 driver letter without colon
:: para2 driver alias name without special letters like +!@#$
:: note efu file is in UTF-8
pushd %efupath%
:: del old efu file
del %2.efu 2>NUL
:: create new efu
Everything -create-filelist %2.efu2 %1:\
:: replace driver letter
FOR /F "tokens=*" %%i in (%2.efu2) do (
set a=%%i
set b=!a:%1:=%2:!
::echo !b!