为什么在七个地狱中这对单个单词文件名有效,而不是多个单词? ...
echo.
set /p "file=Please enter the filename, including extension: "
echo.
echo Searching for %file%, please wait...
setlocal
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 (
for /f "tokens=*" %%a in ('dir /b /s /a-d %%i:\%file% 2^>nul') do (
set "found=%%a" & goto FOUND
))
echo.
echo File not found
echo.
echo Press any key to exit
pause>nul
goto :EOF
:FOUND
echo.
echo File found in %found%
for %%A in ("%found%") do (
Set folder=%%~dpA
Set name=%%~nxA
)
cd %folder%
explorer .
echo.
echo Press any key to exit
pause>nul
代码已被修改,并在线提供各种来源...感谢您的帮助!
答案 0 :(得分:2)
我不确定你要在这里完成什么(在每个驱动器的根目录下查找指定文件?),但问题在于这一行:
for /f "tokens=*" %%a in ('dir /b /s /a-d %%i:\%file% 2^>nul') do (
你需要加上引号:%% i:\%file%
给定一个名为my file.txt
的文件,循环中dir
命令的输出将为:
dir /b /s /a-d c:\my file.txt 2^>nul
,由于文件名中的空格,显然无效。
这会导致您的脚本正常工作:
for /f "tokens=*" %%a in ('dir /b /s /a-d "%%i:\%file%" 2^>nul') do (