我正在尝试创建一个将返回文件位置的批处理文件,包括分区(或驱动器),以便我可以在该批处理文件中使用它来进行更多操作。 文件名已知,但分区和目录未知。这可能吗?
答案 0 :(得分:0)
你可以尝试这样的事情:
@echo off
Title Searching for file by name
Mode con cols=75 lines=3
cls & color 0A
Set SearchResult=SearchResult.txt
If Exist %SearchResult% Del %SearchResult%
echo(
set /P "FileName=Type the file name for looking for = "
Setlocal EnableDelayedExpansion
for /f "tokens=2" %%i in ('wmic logicaldisk where "drivetype=3" ^|find /i ":"') do (
Set MyDrive=%%i
echo( & cls
echo( & echo Please Wait for moment .... Searching for "%FileName%" on "!MyDrive!\"
@where /r !MyDrive!\ "%FileName%" >> %SearchResult%
)
Start %SearchResult%
答案 1 :(得分:0)
以下脚本 - 让我们称之为findfile.bat
- 在本地磁盘和网络驱动器上搜索名称作为命令行参数(例如,findfile.bat "lostfile.txt"
)的文件例如:
@echo off
for /F "skip=1" %%I in (
'wmic LOGICALDISK WHERE ^( ^
DriveType^=3 OR^
DriveType^=4^
^) GET DeviceID'
) do (
for /F "delims=" %%J in ("%%I") do (
2> nul where /R %%J\ "%~1"
)
)
wmic
命令用于检索当前系统上可用的驱动器。在示例中,允许有两个DriveType
值:3
,表示本地磁盘,4
,表示网络驱动器。您可以根据需要调整过滤器 - 引用所有可能值的站点Win32_LogicalDisk class。要不过滤任何驱动器类型,只需删除整个WHERE
子句,然后使用剩余的wmic
命令行wmic LOGICALDISK GET DeviceID
。