Board logo

标题: [文件操作] 【已解决】批处理查找指定文件如何改变查找顺序? [打印本页]

作者: qubin1979    时间: 2013-6-5 10:09     标题: 【已解决】批处理查找指定文件如何改变查找顺序?

本帖最后由 qubin1979 于 2013-6-6 09:17 编辑

下面的代码是查找某盘符下的指定文件,查找顺序是从子子文件夹向跟目录查找的,麻烦帮我改改从根目录向子文件夹的顺序
  1. @echo off
  2. for %%a in (d e f) do (
  3.   if exist %%a:\ (
  4.   for /f "delims=" %%i in ('dir "%%a:\hotel.exe"  /s /b 2^>nul') do set _path=%%~dpi&goto
  5. :next
  6. ))
  7. :next
  8. echo 目录:%_path%
  9. pause
复制代码

作者: xxpinqz    时间: 2013-6-5 10:53

不知道楼主是如何确定dir命令是从子目录往根目录查找,而非根目录往子目录查找呢
作者: qubin1979    时间: 2013-6-5 14:55

回复 2# xxpinqz


  我在文件夹和子文件夹试过了,显示的路径从内到外的
作者: 林小七    时间: 2013-6-5 16:49

你试一试sort命令....不知道能不能实现,,,应该能
作者: Python    时间: 2013-6-5 17:47

把以下代码的执行过程贴出来看看
  1. for %%a in (d e f) do (
  2.     if exist %%a:\ (
  3.         for /f "delims=" %%i in ('dir "%%a:\hotel.exe" /s /b 2^>nul') do (
  4.             echo ===%%~dpi
  5.             set _path=%%~dpi
  6.             goto :next
  7.         )
  8.     )
  9. )
  10. :next
  11. echo %_path%
  12. pause
复制代码

作者: xxpinqz    时间: 2013-6-5 18:08

回复 3# qubin1979
这个意思?
  1. @echo off
  2. pushd .
  3. for %%a in (d e f) do (
  4.   if exist %%a:\nul (
  5.     cd /d "%%a:\"
  6.     for /f "delims=" %%i in ('dir "%%a:\hotel.exe"  /s/b 2^>nul') do set _path=%%~dpi&goto :next
  7. ))
  8. :next
  9. popd&echo 目录:%_path%
  10. pause
复制代码

作者: qubin1979    时间: 2013-6-6 09:15

多谢5楼、6楼   楼主,  都能达到我要的结果,  6楼的更简洁些




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2