天下网吧 >> 网吧天地 >> 天下码农 >> 桌面开发 >> 批处理 >> 正文

批处理获取当前文件夹及子文件夹下所有文件相对路径,网维看过来

上一篇:

批处理解决网吧、电竞酒店系统Edge下载文件被阻止的源码,放开机运行一劳永逸

新篇前言:

本源码作用就是列举当前文件夹下的文件和子文件夹下的所有文件的批处理源码。该源码无论从批处理学习角度看还是实际用途上来看都是不错的批处理源码。

运行效果截图(以Microsoft Visual Studio文件夹为例):

完整源码:


@echo off
:: 获取当前目录及其子目录下所有文件的相对路径
:: code by jm 2006-12-17

set layers=0
set "cur_dir=%cd%\"
:get_cd_layers
set "cur_dir=%cur_dir:*\=%"
if not "%cur_dir%"=="" set /a layers+=1&goto get_cd_layers

for /f "delims=" %%i in ('dir /a-d /s /b /on') do call :intercept "%%~dpnxi"
pause
goto :eof

:intercept
set num=0
set sub_path=%1
set "sub_path=%sub_path:~1,-1%"
:loop
set "sub_path=%sub_path:*\=%"
if not %num% equ %layers% set /a num+=1&goto loop
echo "%sub_path%"
goto :eof


天下解读:

批处理源码非常简洁,而且高效。

无论在批处理学习的角度看,还是做网吧维护、电竞酒店网维的实用性上这个源码都是不可多得的好源码。

在网维上来讲,比如你要统计当前游戏文件夹下每个文件名并保存到一个txt里,下次出问题时好对比出问题的游戏文件夹,找出出问题的文件,这个就比较好用了。你可能说直接dir /s也能实现,这个完全不一样,以后就会懂。

批处理学习上来讲,该源码使用了「递归」的技术,把文件夹和子文件夹(不管多少级)一级一级遍历过去。这个很巧妙的一个思路,大家可以认真阅读源码,体会核心代码。

本文来源:天下网吧 作者:天下码农

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系Email:support@txwb.com,系统开号,技术支持,服务联系QQ:1175525021本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行