首页 > 其他分享 >写一个cmd脚本,列出指定目录下的所有子目录和文件,限制层数

写一个cmd脚本,列出指定目录下的所有子目录和文件,限制层数

时间:2023-09-17 11:44:44浏览次数:36  
标签:set indent %% cmd 子目录 curdepth 层数

在 Windows 的 CMD shell 中,tree 命令并不直接支持指定层数。

@echo off
setlocal
set "root=%~1"
set "maxdepth=%~2"
set "curdepth=0"
set "indent="

:loop
pushd "%root%"
for /d %%D in (*) do (
    echo %indent%+-- %%D
    if %curdepth% lss %maxdepth% (
        set /a "curdepth+=1"
        set "root=%%D"
        set "indent=%indent%    "
        call :loop
        set "indent=%indent:~,-4%"
        set /a "curdepth-=1"
    )
)
popd
exit /b
tree_depth.cmd C:\path\to\directory 2

标签:set,indent,%%,cmd,子目录,curdepth,层数
From: https://www.cnblogs.com/yhm138/p/17708017.html

相关文章

  • 封装一个用来获取多层数组对象的最后一层对象集合
    //获取多层数组对象的最后一层的对象functiongetAllIds(tree:any,result:any){//遍历树获取id数组for(constiintree){if(tree[i].id)result.push(tree[i]);//遍历项目满足条件后的操作if(tree[i].children){//存在子节点就递归ge......
  • 【Azure Batch】在批处理的Task中如何让它执行多个CMD指令呢
    问题描述根据AzureBatch的入门文档(使用Azure门户创建Batch帐户并运行作业: https://docs.azure.cn/zh-cn/batch/quick-create-portal),创建了BatchAccount,Pool,Job,Task.并且成功运行。这时候,想要在Batch的Task中执行多个CMD指令,尝试写多行执行。类似如下:cmd/c"echo......
  • 【Azure Batch】在批处理的Task中如何让它执行多个CMD指令呢
    问题描述根据AzureBatch的入门文档(使用Azure门户创建Batch帐户并运行作业: https://docs.azure.cn/zh-cn/batch/quick-create-portal),创建了BatchAccount,Pool,Job,Task.并且成功运行。这时候,想要在Batch的Task中执行多个CMD指令,尝试写多行执行。类似如下:cmd/c......
  • Shell脚本中文英文多语言国际化和命令行批处理(bash sh cmd bat)中定义函数的简单写法
    目录命令行脚本参考-bat命令行脚本参考-bash值得学习的知识点1.识别终端使用的语言2.函数的编写3.获取用户的输入4.bat文件老是乱码怎么办有时候为了方便别人使用,我们会选择去编写各种各样的命令行脚本:给Windows用户编写.batcmd批处理脚本,给macOS、Linux用户编写.shbas......
  • cmd快速拷贝文件不计算文件
    例:将a文件夹内的所有内容(包括子文件夹)复制到b文件夹xcopya*b/y/e/i/q如xcopyE:*G:\test/y/e/i/q拷贝E盘文件到G盘下的test文件夹说明:/y:不弹出“确认是否覆写已存在目标文件”的提示/e:复制文件及子文件夹内所有内容,包括空文件夹(对比/s,/s不复制空文件夹)/i:如果b......
  • 1783_CMD启动MATLAB同时执行一个脚本
    全部学习汇总:GitHub-GreyZhang/g_matlab:MATLABonceusedtobemydailytool.AftermanyyearswhenIgobackandreadmyoldlearningnotesIfeltmaybeIstillneeditinthefuture.So,startthisrepotokeepsomeofmyoldlearningnotesservralyearsa......
  • dockerfile entrypoint cmd 同时使用
    CMD与ENTRYPOINT都是用于指定启动容器执行的命令,区别在于:当dockerrun命令中有参数时,守护进程会忽略CMD命令。使用ENTRYPOINT指令不会忽略,并且会接收dockerrun参数附加到命令行中。dockerrun的命令,相当于新加的CMD,会覆盖原有的CMDnginx的镜像就是这样。dockerrun......
  • cmd从c盘进入d盘的方法
    cmd从c盘进入d盘输入命令cd  D:\pythonc\pythonProject\pythonProject_data切换目录失败 解决方案切换到c盘的根目录cd/后d:  ......
  • sysfs文件系统各子目录含义
    /sys/block块设备目录,目前此目录已指向到/sys/devices/中设备描述符链接文件/sys/bus设备按总线类型分层放置子目录,/sys/devices/中的所有设备都是链接于某种总线,bus子目录在每一种具体总线之下都可以找到对应每一个具体设备的描述符号链接/sys/class设备按功能分类放置子目录,/......
  • cmd合并多个txt到一个
    copy*.txt1.txt......