惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
P
Proofpoint News Feed
D
DataBreaches.Net
C
Check Point Blog
L
LangChain Blog
量子位
美团技术团队
Vercel News
Vercel News
人人都是产品经理
人人都是产品经理
N
Netflix TechBlog - Medium
V
Visual Studio Blog
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
MongoDB | Blog
MongoDB | Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Last Week in AI
Last Week in AI
The GitHub Blog
The GitHub Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
U
Unit 42
腾讯CDC
M
MIT News - Artificial intelligence
Microsoft Azure Blog
Microsoft Azure Blog
Blog — PlanetScale
Blog — PlanetScale

博客园 - hjswlqd

python pip 离线包安装 whl格式 tar gz格式 py-radius mysql 连接查询 左连接 右连接 笛卡尔积 等 python linux 调试 vscode timeline不显示|不正常|异常|no filtered timeline information was provided|Timeline does not work es scroll id 每次都相同 python 安装 echarts的渐变色配置 LinearGradient 联想 进入bios u盘启动 kibana筛选数据 vscode python 3.7 pylance debugpy 插件 vsix vsix 离线 编译 转 | 一次搞懂数据大屏适配方案 (vw vh、rem、scale) 分辨率 缩放比 转 | element-ui组件table去除下方滚动条,实现鼠标左右拖拽移动表格 vscode 提示js 函数的插件 | vue3项目的插件 Window中查看端口被哪个进程占用,并结束进程的方法 nodejs 统计算指定后缀,格式的文件 保存 |下载 | 提取 win10 win11 电脑 锁屏壁纸 vscode process terminal 3221225506 终端打不开 默认打开powershell
python windows命令行 批处理 统计算指定后缀,格式的文件
hjswlqd · 2024-06-22 · via 博客园 - hjswlqd

结合gpt,按照自己的思路,做了个记录

1.python版本

import os


def counfiles(directory, extension):
    count = 0
    for root, dirs, files in os.walk(directory):
        for file in files:
            if file.endswith(extension):
                print("current file is:", file)
                count += 1
    return count


html_file_count = counfiles(".", ".html")
print("html_file_count : ", html_file_count)

2、windows命令

dir /b /s /a-d | find /C /I “.txt” 含义

这条命令是Windows命令提示符(CMD)中的一条命令组合,用于统计指定目录及其所有子目录中,包含特定文件扩展名(在这个例子中是`.txt`)的文件总数。下面是对这条命令各部分含义的分解:

- `dir`:这是一个命令,用于列出指定目录的内容,包括文件和子目录。

- `/b`:这是一个开关,表示以“简洁”(bare)形式列出,即每个文件或目录名占一行,不包含其他详细信息,如大小、日期等。

- `/s`:这个开关告诉`dir`命令递归地搜索指定目录下的所有子目录。

- `/a-d`:这个参数组合用于过滤结果,`/a`后面可以跟多个属性标识符,这里跟的是`-d`,表示排除目录(directories),只显示文件(files)。

接下来是一个管道符号 `|`,它将前一个命令的输出作为后一个命令的输入。

- `find`:这是另一个命令,用于在输入流中查找指定的文本字符串。

- `/C`:`find`命令的开关,表示统计匹配项的数量,而不是列出每一项匹配。

- `/I`:这个开关表示搜索时不区分大小写。

- `“.txt”`:这是要查找的文本字符串,在这个上下文中,它代表以`.txt`为扩展名的文件名。

综上所述,整条命令的含义是:列出指定目录及其所有子目录中所有的`.txt`文件(不包括目录),并统计这些文件的总数。

为什么 /s是表示递归的意思,

在命令行工具中,如Windows的CMD命令或Unix/Linux的shell命令中,`/s`(在Unix/Linux中对应的是`-r`或`-R`)作为一个选项,通常被用来指示命令应当递归地作用于指定目录及其所有子目录。这个选项的设计初衷是为了方便用户一次性处理层次结构中的多个层级,而无需手动逐层执行命令。

以Windows的`dir`命令为例,当你加上`/s`选项时,命令不再是仅仅查看指定目录下的内容,而是会深入到该目录下的每一个子目录,对每个子目录也执行相同的操作,然后再进入更下一级的子目录,以此类推,直到遍历完所有层级。这样做的好处是,如果你想要获取整个目录树的信息,或者批量处理(如查找、修改、删除)整个目录结构中的文件时,只需一条命令就能完成,大大提高了效率。

在计算机术语中,“递归”一词来源于数学,指的是一个过程或函数在其定义中直接或间接地调用自身的一种方法。在文件系统操作的上下文中,使用“递归”意味着命令会自我重复应用到目录树的每一层级,直到达到最底层的文件为止。因此,`/s`作为一个递归选项,形象地体现了这一概念。

3、批处理

windows命令行的命令,是不是可以写成bat文件

@echo off
dir /b /s /a-d *.txt > file_list.txt