我们这一期的题目 :目录最后一个名称的提取
因为任意目录的名称都不一样。。但都满足于
c:\aaa\bbb\ccc
的格式,那么我们的要求就是 提出 ccc。
这个格式可以通过 dir /b /s /ad 来获取。
可以使用 vbs 来提取
但不得通过第三方工具。。。。。。。。。。。。。。。。。。。。
挑战人的关键字: set /a ,变量延迟 , if not defined
不得使用:for 或 call 时 的特殊参数。。例如 %~nxi 之类的。
[ Last edited by flyinspace on 2007-4-30 at 05:03 PM ]
因为任意目录的名称都不一样。。但都满足于
c:\aaa\bbb\ccc
的格式,那么我们的要求就是 提出 ccc。
这个格式可以通过 dir /b /s /ad 来获取。
可以使用 vbs 来提取
但不得通过第三方工具。。。。。。。。。。。。。。。。。。。。
挑战人的关键字: set /a ,变量延迟 , if not defined
不得使用:for 或 call 时 的特殊参数。。例如 %~nxi 之类的。
set "aaa=c:\windows\system32\playuo\cndos\asd adf"
set /a "count=0","count1=0"
set "FileName="
for /f "tokens=* " %%i in ("%aaa%") do (
set str=%%~i
for /l %%a in (0,1,255) do if "!str:~%%a,1!"=="" if not defined len set len=%%a
for /l %%a in (0,1,255) do if "!str:~%%a,1!"=="\" set /a count+=1
for /l %%a in (0,1,255) do (
set abc=!str:~%%a,1!
if "!count!"=="!count1!" (
set /a "lenflag=!len!-%%a"
if not defined FileName call :GetName "!lenflag!" "%%a"
)
if "!abc!"=="\" set /a count1=!count1!+1
)
echo 在%aaa%目录中
echo 提取的文件夹名为:"!FileName!"
)
goto :END
:GetName _len_ _len_
set "parm1=%~1"
set "parm2=%~2"
set "FileName=!str:~%parm2%,%parm1%!
goto :EOF
:END
pause
[ Last edited by flyinspace on 2007-4-30 at 05:03 PM ]
本帖最近评分记录
(共 1 条)
点击查看详情
| 评分人 | 分数 | 时间 |
|---|---|---|
| youxi01 | +8 | 2007-04-30 13:31 |
知,不觉多。不知,乃求知
