|
发表于 2024-11-30 15:04:22
|
显示全部楼层
GPT-4o 模型 回答 加入 不使用 wmic 命令 请自行验证
- @echo off
- setlocal enabledelayedexpansion
- :: 定义要搜索的文件名
- set filename=baiduseo.txt
- :: 获取所有磁盘驱动器盘符
- for /f "tokens=2 delims=" %%d in ('fsutil fsinfo drives') do (
- set drive=%%d
- echo Searching drive !drive!\
- :: 搜索该分区根目录下是否有目标文件
- dir !drive!\%filename% /a /b >nul 2>&1
- if not errorlevel 1 (
- echo File found: !drive!\%filename%
- exit /b
- )
- )
- echo File not found.
- endlocal
复制代码
解释:
- fsutil fsinfo drives:获取系统上所有的驱动器(分区)。这个命令返回的是所有可用的磁盘分区的盘符信息,例如:C:\ D:\ E:\ 等。
- for /f "tokens=2 delims=\" %%d:从 fsutil 返回的驱动器列表中提取每个盘符(例如 C:, D:)。
- dir !drive!\%filename% /a /b >nul 2>&1:dir 命令查找每个分区根目录下是否有目标文件,并通过 /a 参数确保能够搜索隐藏文件(如有必要),通过 /b 参数简化输出。>nul 2>&1 将输出重定向,以避免显示无用的目录信息。
- if not errorlevel 1:如果 dir 命令成功找到文件(返回码为 0),则表示文件存在,脚本将输出文件路径并结束执行。
使用方法:
- 将此脚本保存为 .bat 文件(例如:find_baiduseo.bat)。
- 双击运行该脚本,脚本会在所有磁盘分区的根目录下查找 baiduseo.txt 文件,找到后显示路径并停止搜索。
额外注意事项:
- 确保你运行脚本时有足够的权限访问所有磁盘分区。如果没有权限,某些分区可能会被忽略。
- 该脚本只在根目录下查找,不会深入子目录。
- 如果 G 盘上有该文件却找不到,可能是由于文件的权限设置问题或磁盘的挂载问题。你可以手动检查 G:\ 根目录是否真的存在该文件。
|
|