当前位置:TranBon博客 > 首页 > 技术 > Windows11计算目录(包括它们所有的子目录)中总体的文件数量和目录数量

Windows11计算目录(包括它们所有的子目录)中总体的文件数量和目录数量

adminis4个月前 (12-15)技术57680

Windows11计算包括 \云同步\EXE 和 \云同步\H5
①这两个目录(包括它们所有的子目录)中总体的文件数量和目录数量
②本身在内的每个目录(以及它们的子目录)中的文件和目录数量,并且分别显示每个目录(包括顶级目录)的统计结果,
③先文件、目录、路径这样显示排版要整齐,数字要右对齐,中文显示


在Windows 11的PowerShell中,你可以编写一个脚本来计算指定目录(包括它们所有的子目录)中的文件和目录数量,并且按照要求的格式显示结果。以下是一个示例脚本,它实现了你的需求:

# 定义要统计的顶级目录
$topDirs = @("\云同步\EXE", "\云同步\H5")

# 定义一个函数来计算文件和目录数量
function CountFilesAndDirs($dir) {
    $fileCount = (Get-ChildItem -Path $dir -File -Recurse | Measure-Object).Count
    $dirCount = (Get-ChildItem -Path $dir -Directory -Recurse | Measure-Object).Count
    return $fileCount, $dirCount
}

# 定义一个函数来格式化输出
function FormatOutput($fileCount, $dirCount, $path) {
    # 设置数字和路径的最大显示宽度
    $maxWidth = 10

    # 格式化文件数量和目录数量,右对齐
    $formattedFiles = "{0,$maxWidth}" -f $fileCount
    $formattedDirs = "{0,$maxWidth}" -f $dirCount

    # 输出结果
    Write-Host "文件数量:$formattedFiles  目录数量:$formattedDirs  路径:$path"
}

# 遍历每个顶级目录,并计算统计结果
foreach ($dir in $topDirs) {
    # 计算顶级目录及其所有子目录中的文件和目录数量
    $fileCountTotal, $dirCountTotal = CountFilesAndDirs $dir

    # 显示顶级目录的统计结果
    FormatOutput $fileCountTotal $dirCountTotal $dir

    # 递归显示每个子目录(包括顶级目录本身)的统计结果
    Get-ChildItem -Path $dir -Directory -Recurse | ForEach-Object {
        $subdir = $_.FullName
        $fileCount, $dirCount = CountFilesAndDirs $subdir
        FormatOutput $fileCount $dirCount $subdir
    }
}

# 暂停以便查看结果
# Read-Host -Prompt "按任意键退出..."


将上述脚本复制并粘贴到PowerShell窗口中,然后按Enter键运行。脚本将执行以下操作:

  1. 定义要统计的顶级目录列表。

  2. 定义一个函数CountFilesAndDirs来计算指定目录及其所有子目录中的文件和目录数量。

  3. 定义一个函数FormatOutput来格式化输出结果,确保数字和路径右对齐,并且中文显示。

  4. 遍历每个顶级目录,首先计算并显示顶级目录及其所有子目录中的文件和目录总数。

  5. 递归地遍历每个子目录(包括顶级目录本身),计算并显示每个子目录中的文件和目录数量。

  6. 最后,脚本将暂停,以便你可以查看结果。按任意键退出脚本。

请确保你的PowerShell执行策略允许运行自定义脚本。如果需要,你可以使用Set-ExecutionPolicy cmdlet来更改执行策略。例如,要允许运行本地脚本,你可以运行Set-ExecutionPolicy RemoteSigned







如果你在使用 PowerShell 脚本统计包括 \云同步\EXE 和 \云同步\H5 这两个目录(及其所有子目录)中的文件和目录数量时,发现统计结果不完整,可能是因为某些文件或目录由于权限问题、路径长度限制或其他原因被跳过了。

可分成2次


\云同步\EXE

# 定义要统计的顶级目录
$topDirs = @("\云同步\EXE")

# 定义一个函数来计算文件和目录数量
function CountFilesAndDirs($dir) {
    $fileCount = (Get-ChildItem -Path $dir -File -Recurse | Measure-Object).Count
    $dirCount = (Get-ChildItem -Path $dir -Directory -Recurse | Measure-Object).Count
    return $fileCount, $dirCount
}

# 定义一个函数来格式化输出
function FormatOutput($fileCount, $dirCount, $path) {
    # 设置数字和路径的最大显示宽度
    $maxWidth = 10

    # 格式化文件数量和目录数量,右对齐
    $formattedFiles = "{0,$maxWidth}" -f $fileCount
    $formattedDirs = "{0,$maxWidth}" -f $dirCount

    # 输出结果
    Write-Host "文件数量:$formattedFiles  目录数量:$formattedDirs  路径:$path"
}

# 遍历每个顶级目录,并计算统计结果
foreach ($dir in $topDirs) {
    # 计算顶级目录及其所有子目录中的文件和目录数量
    $fileCountTotal, $dirCountTotal = CountFilesAndDirs $dir

    # 显示顶级目录的统计结果
    FormatOutput $fileCountTotal $dirCountTotal $dir

    # 递归显示每个子目录(包括顶级目录本身)的统计结果
    Get-ChildItem -Path $dir -Directory -Recurse | ForEach-Object {
        $subdir = $_.FullName
        $fileCount, $dirCount = CountFilesAndDirs $subdir
        FormatOutput $fileCount $dirCount $subdir
    }
}

# 暂停以便查看结果
# Read-Host -Prompt "按任意键退出..."


\云同步\H5

# 定义要统计的顶级目录
$topDirs = @("\云同步\H5")

# 定义一个函数来计算文件和目录数量
function CountFilesAndDirs($dir) {
    $fileCount = (Get-ChildItem -Path $dir -File -Recurse | Measure-Object).Count
    $dirCount = (Get-ChildItem -Path $dir -Directory -Recurse | Measure-Object).Count
    return $fileCount, $dirCount
}

# 定义一个函数来格式化输出
function FormatOutput($fileCount, $dirCount, $path) {
    # 设置数字和路径的最大显示宽度
    $maxWidth = 10

    # 格式化文件数量和目录数量,右对齐
    $formattedFiles = "{0,$maxWidth}" -f $fileCount
    $formattedDirs = "{0,$maxWidth}" -f $dirCount

    # 输出结果
    Write-Host "文件数量:$formattedFiles  目录数量:$formattedDirs  路径:$path"
}

# 遍历每个顶级目录,并计算统计结果
foreach ($dir in $topDirs) {
    # 计算顶级目录及其所有子目录中的文件和目录数量
    $fileCountTotal, $dirCountTotal = CountFilesAndDirs $dir

    # 显示顶级目录的统计结果
    FormatOutput $fileCountTotal $dirCountTotal $dir

    # 递归显示每个子目录(包括顶级目录本身)的统计结果
    Get-ChildItem -Path $dir -Directory -Recurse | ForEach-Object {
        $subdir = $_.FullName
        $fileCount, $dirCount = CountFilesAndDirs $subdir
        FormatOutput $fileCount $dirCount $subdir
    }
}

# 暂停以便查看结果
# Read-Host -Prompt "按任意键退出..."



第4条随机版权
文章免责声明
尊敬的读者:

本文所提供的信息、观点及数据均来源于公开资料、相关研究报告及个人理解,仅供读者参考。本文不代表任何官方立场或专业机构的意见,亦不构成任何投资建议或决策依据。

在撰写本文时,我们已尽力确保信息的准确性和完整性,但鉴于信息来源的多样性及可能存在的误差,我们无法保证本文所述内容在任何时刻都绝对准确无误。因此,读者在阅读本文时,应结合自身实际情况及专业知识,进行独立分析和判断。

对于因本文信息不准确、不完整或读者自身理解偏差而导致的任何损失或损害,我们概不负责。同时,我们也不承担因本文所述内容引发的任何法律责任或纠纷。

此外,本文可能包含对特定公司、行业或市场的分析和预测,这些分析和预测均基于当前市场环境及可获得的信息,并可能受到多种因素的影响而发生变化。因此,读者在参考本文时,应充分考虑这些潜在的风险和不确定性。

我们鼓励读者在阅读本文后,进一步查阅相关资料和咨询专业人士,以获取更全面、准确的信息和建议。同时,我们也欢迎读者就本文内容提出宝贵的意见和建议,以便我们不断改进和提升文章质量。

最后,感谢读者对本文的关注和阅读。我们希望通过提供有价值的信息和观点,为读者在相关领域的学习和决策提供一定的帮助和参考。但请务必记住,本文所述内容仅供参考,不构成任何具体建议或承诺。

特此声明。

扫描二维码推送至手机访问。

版权声明:本文由TranBon博客发布,如需转载请注明出处。

本文链接:https://bk.tranbon.com/?id=340

“Windows11计算目录(包括它们所有的子目录)中总体的文件数量和目录数量” 的相关文章

哈哈哈!大神Note3 终于可以把 酷派系统 或着 酷派系统 “砖头”直接刷机刷成 360 OS 2.0!

哈哈哈!大神Note3 终于可以把 酷派系统 或着 酷派系统 “砖头”直接刷机刷成 360 OS 2.0!

哈哈哈!大神Note3 终于可以把 酷派系统 直接刷成 360 OS 2.0了哈哈哈!大神Note3 终于可以把 酷派系统 “砖头”直接刷成 360 OS 2.0了最新版的刷机软件就可以了,直接把 酷派系统 或着 酷派系统 “砖头”直接刷机刷成 360 OS 2.0!下面重点:刷机软件 要是如下图,...

在Centos 7 上安装Zabbix监控

在Centos 7 上安装Zabbix监控

一、关闭selinux和iptables && 安装Zabbix rpm包仓库 && 安装zabbix-server-mysql和zabbix-web-mysql && 安装并且启动mysql5.6及 数据库信息安全初始化、设置数据库root密码等[r...

vi编辑器教程

http://blog.sina.com.cn/s/blog_736f1c59010136ry.htmlhttp://blog.csdn.net/lanxinju/article/details/5731843Linux下的文本编辑器有很多种,vi 是最常用的,也是各版本Linux的标配。注意,vi...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。