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

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

adminis6天前技术6320

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 "按任意键退出..."



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

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

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

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

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

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

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

特此声明。

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

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

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

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

cnetos系统mysql配置my.cnf文件,跳过密码认证登录并设置远程登录(不一定有效)

cnetos系统mysql配置my.cnf文件,跳过密码认证登录并设置远程登录(不一定有效)

cnetos手动安装mysql没有my.cnf配置文件时,1.可以从其它服务器把my.cnf文件拷贝到需要的服务器上,2.可以touch创建my.cnf文件这边是直接使用touch命令my.cnf文件的,创建在/etc/目录下[root@host ~]#  touch&...

iis7 asp网站 500 - 内部服务器错误。

iis7 asp网站 500 - 内部服务器错误。

其它配置正常的情况下解决方法: 处理完成了!...

Linux、Centos一些命令

Centos6-关闭防火墙service iptables stopchkconfig iptables offCentos6-关闭selinux(需重启生效)sed -i.bak '/^SELINUX=/cSELINUX=disabled' /etc/sysconfig/selin...

发表评论

访客

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