| 
 | 
原帖由 guanjinman 于 2010-4-11 03:57 发表   
第一条你都说不靠谱的我不去试了 
 
for  /f "delims=" %%i  in   ('dir /a-d/b/s PENETCFG.EXE')  do  if  "%%~nxi"==""   goto end  (这个什么环境下都能胜任)我试过不行:当x:\wxpe\下及其所有子目录下都没有PENETCFG.EXE的时候仍然没有goto end。有PENETCFG.EXE不会goto end;没有PENETCFG.EXE也不会goto end ,所以这条等于没加(把PENETCFG.EXE改成PENETCFG.BAK测试)   
 
 
for  /f "delims=" %%i  in   ('dir /a-d/b/s PENETCFG.EXE')  do  if  not "%%~nxi"=="PENETCFG.EXE'"   (echo.没pentcfg.exe) else  ( echo. pentcgf 存在) 
 
     这个楼上老兄对不住啦,  我写错了, 
 
 
         忘了 告诉你,  其实for /r, 像那样标记就是 有意 写错的,   为了只是证明 :   for /r   是枚举,   而不是搜索 
 
                    枚举,  不查找, 不管有没有, 先假定它有,           搜索是, 给它一个搜索值, 它 按照文件夹下的文件名,傻傻的一个个去对比 
 
 
 
              如果,   还没明白,  for /r   是枚举,  不是搜索,   你  把 do  后面, 写上  echo.%%i  就能看到效果,无论有没有要找的它全显示为有,   而去掉 /r  参数  却完全相反, 有就显示,没就无 
 
 
          for /r  一样能让它正确运行,    :     其实三楼, 最后以给出了 正确的用法,  想要不出错 pushd  cd  /d  跳目录            
 
                 怎么跳? 我一般是用call  set "v=%%~i" &call set "lj=%%v:~-x%%                   (x  代表你要查找文件的位数, 如 penetcfg.exe   x 就是用12 ) |   
 
 
 
 |