批处理, 递归遍历目录路径.

骄傲青蛙 2011-08-09 08:33:52
大家, 晚上好,

问二个批处理的问题。

1.
这是我的代码, 如下

@echo off

set sPath=e:\temp_vcd

for /r %sPath% %%i in (*.*) do (
rem 后面的这个%%i是绝对路径, 怎么使它只显示文件名, 不显示路径
echo ^<a href="%%i"^>%%i^</a^>
rem 结果就像这样, 例如, <a href="e:\temp_vcd\aaa\1.jpg">1.jpg</a>

)
pause



2. 能不能把上面的for递归显示目录如下, 不是用/tree

temp_vcd

--dvd
----a.mpg
----b.mpg

--vcd
----aa.mpg
----c.mpg

...全文
788 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
nklfs 2011-08-12
  • 打赏
  • 举报
回复
@echo off

set sPath=e:\temp_vcd

for /r . %%a in (.) do @echo %%~dpa,%%~nxa,%%a >> c:\output.csv

pause
以上需要写在批处理里面

如果不需要批处理里面,直接在cmd中执行,请用
for /r . %a in (.) do @echo %~dpa,%~nxa,%a >> c:\output.csv
Forever_Young 2011-08-11
  • 打赏
  • 举报
回复
分不错,呵呵

[code=BatchFile]
@echo off

set sPath=i:\temp_vcd

for /r %sPath% %%i in (*.*) do (
echo ^<a href="%%i"^>%%~nxi^</a^>
)

echo.&echo.

for /f "tokens=*" %%i in ('dir /s /b /ad %sPath%') do (
echo %%i
call :listfile "%%i"
)

pause

goto :eof

:listfile
for /f "tokens=*" %%f in ('dir /b /a-d %1') do (
echo %%f
)
[/code]
骄傲青蛙 2011-08-11
  • 打赏
  • 举报
回复
快来人回答, 要结帖了 -_-!!
mingpei0703 2011-08-10
  • 打赏
  • 举报
回复
不懂,帮顶!
s11ss 2011-08-09
  • 打赏
  • 举报
回复
问题1
%%~nxi(详情请见for /?)

18,137

社区成员

发帖
与我相关
我的任务
社区描述
Windows客户端使用相关问题交流社区
社区管理员
  • Windows客户端使用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧