|
原帖由 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 ) |
|