
CODE: [Copy to clipboard]@echo off
:: 把按照盘符顺序查到的第一个指定文件加入到查询路径中去
:: 因为dir命令不能查询本脚本程序所在盘符下的所有文件
:: 所以要用cd\返回到根目录下以实现全盘查询
cd\
del list.txt>nul 2>nul
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 (
dir /a /b /s %%i:test.txt>list.txt 2>nul && goto :add
)
echo 不存在该文件
pause
:add
for /f %%i in (list.txt) do path=%path%;%%i
del list.txt>nul 2>nul
path
pause
CODE: [Copy to clipboard][ Last edited by namejm on 2006-6-6 at 23:12 ]@echo off
:: 把按照盘符顺序查到的第一个指定文件加入到查询路径中去
:: 当路径带空格时不能正确执行
del list.txt>nul 2>nul
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 (
dir /a /b /s %%i:\test.txt>list.txt 2>nul && goto :add
)
echo 不存在该文件
pause && goto :eof
:add
for /f %%i in (list.txt) do (
find "test.txt" list.txt>nul 2>nul && path=%path%;%%i && goto end
)
goto :eof
:end
del list.txt>nul 2>nul
path
pause
CODE: [Copy to clipboard]@echo off
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 "delims=" %%p in ('dir /a /b /s %%i:\test.txt') do (
set path=%path%;%%p&&goto :eof
)) 2>nul
)
echo 不存在该文件
pause && goto :eof
CODE: [Copy to clipboard]不过这个批处理好象最终的结果还是将找到的最后一个路径加入了PATH,看来必要时需要启用延迟环境变量扩展。@echo off
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 "delims=" %%P in ('dir /a /b /s %%i:\test.txt') do (
set path=%path%;%%~dpsP&&goto :eof
)) 2>nul
)
echo 不存在该文件
pause && goto :eof
| Quote: | |
|
| 欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) | Powered by Discuz! 2.5 |