Batch file 正在搜索文件,但可能需要超时
我有一个程序来搜索特定文件的驱动器。唯一的问题是我不知道它开的是什么。当它在一个驱动器中搜索一个不存在的文件时,就会出现问题。比如说,10秒钟后,如果没有办法转到下一个驱动器,就会出现问题。这是到目前为止我的密码Batch file 正在搜索文件,但可能需要超时,batch-file,Batch File,我有一个程序来搜索特定文件的驱动器。唯一的问题是我不知道它开的是什么。当它在一个驱动器中搜索一个不存在的文件时,就会出现问题。比如说,10秒钟后,如果没有办法转到下一个驱动器,就会出现问题。这是到目前为止我的密码 @echo off setlocal EnableDelayedExpansion set count=1 for /f "skip=1" %%a in ('wmic logicaldisk get caption') do ( set drive!count!=
@echo off
setlocal EnableDelayedExpansion
set count=1
for /f "skip=1" %%a in ('wmic logicaldisk get caption') do (
set drive!count!=%%a
set /a count+=1
)
set "gh=!drive1!"
::Change this to do whatever with the variables
set "fh=!drive2!"
set "hh=!drive3!"
set "jh=!drive4!"
For /R %gh%\ %%G IN (*.ut2) do set jk="%%~dpG"
if defined jk (
echo %jk%
) else (
goto next
)
for /r %jk% %%a in (*) do if "%%~nxa"=="CTF-Hydro-16-2k3.ut2" set k=%%~dpnxa
if defined k (
echo %k% found
pause
cls
echo You have it
goto end
) else (
echo Map not found
copy %CD:~0,3%\Unrealmap\CTF-Hydro-16-2k3.ut2 %jk%
goto end
)
:next
For /R %fh%\ %%G IN (*.ut2) do set ht="%%~dpG"
if defined ht (
echo %ht%
) else (
goto there
)
for /r %ht% %%a in (*) do if "%%~nxa"=="CTF-Hydro-16-2k3.ut2" set m=%%~dpnxa
if defined k (
echo %m% found
pause
cls
echo You have it
goto end
) else (
echo Map not found
copy %CD:~0,3%\Unrealmap\CTF-Hydro-16-2k3.ut2 %jk%
goto end
:there
:end
cls
echo done
pause
尝试下一种方法:
@ECHO OFF >NUL
SETLOCAL enableextensions
set /A "ii=0"
for /f "skip=1" %%D in ('
wmic logicaldisk get caption
') do for /F %%d in ("%%D") do (
echo searching %%d
for /F "delims=" %%G IN ('dir /B /S "%%d\CTF-Hydro-16-2k3.ut2" 2^>nul') do (
set /A "ii+=1"
set "k=%%G"
rem remove 'rem' from next line to discontinue searching
rem goto :testfound
)
TIMEOUT /T 10 /NOBREAK >NUL
)
:testfound
if %ii% EQU 0 (
echo Map not found
) else (
echo Map found %ii% times: last one "%k%"
)
这里是针对wmic
命令的for
循环
检索%%D
值李>标题
删除返回值中的结束回车:%%d
行为:每个输出行以wmic
(0x0D0D0A
)结束,而不是普通的
(0x0D0A
)
wmic datafile where "Extension='ut2' and FileName='CTF-Hydro-16-2k3'" get Name 2>NUL
尝试下一种方法:
@ECHO OFF >NUL
SETLOCAL enableextensions
set /A "ii=0"
for /f "skip=1" %%D in ('
wmic logicaldisk get caption
') do for /F %%d in ("%%D") do (
echo searching %%d
for /F "delims=" %%G IN ('dir /B /S "%%d\CTF-Hydro-16-2k3.ut2" 2^>nul') do (
set /A "ii+=1"
set "k=%%G"
rem remove 'rem' from next line to discontinue searching
rem goto :testfound
)
TIMEOUT /T 10 /NOBREAK >NUL
)
:testfound
if %ii% EQU 0 (
echo Map not found
) else (
echo Map found %ii% times: last one "%k%"
)
这里是针对wmic
命令的for
循环
检索%%D
值李>标题
删除返回值中的结束回车:%%d
行为:每个输出行以wmic
(0x0D0D0A
)结束,而不是普通的
(0x0D0A
)
wmic datafile where "Extension='ut2' and FileName='CTF-Hydro-16-2k3'" get Name 2>NUL