首页
学习
活动
专区
圈层
工具
发布

PowerShell 脚本进阶:如何统计目录大小并包含隐藏文件

PowerShell 脚本进阶:如何统计目录大小并包含隐藏文件 目录 引言 PowerShell 基础:Get-ChildItem 和文件统计 2.1 Get-ChildItem 基本用法 2.2...引言 在日常系统管理和文件整理工作中,我们经常需要统计某个目录(及其子目录)的占用空间。PowerShell 提供了强大的文件遍历和计算能力,但默认情况下,它不会处理隐藏文件或系统文件。...PowerShell 基础:Get-ChildItem 和文件统计 2.1 Get-ChildItem 基本用法 Get-ChildItem(别名 dir 或 ls)是 PowerShell 中用于列出文件和目录的核心命令...隐藏文件的处理 3.1 什么是隐藏文件和系统文件? 隐藏文件:在 Windows 中,文件或目录可以设置 Hidden 属性(如 .git 目录)。...进一步优化方向: 使用 Robocopy 进行快速统计(适用于超大型目录) 采用多线程加速计算(PowerShell 7+) 希望本文对您的 PowerShell 脚本编写有所帮助!

39610
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    PowerShell系列(十):PowerShell CmdletPowerShell Cmdlet 参数详解

    今天给大家讲解PowerShell Cmdlet参数相关的知识,希望对大家学习PowerShell能有所帮助!...比如下面的例子我们打开PowerShell,然后输入 New-Item 命令会提示位于命令管道位置 1 的 cmdlet New-Item请为以下参数提供值:Path[0]:这个时候我们不输入参数,直接点击回车按钮...> 表示为开关类型的数据,示例:D盘创建一个logs文件夹,文件夹内容如下图:首先获取文件夹内容get-childitem执行结果如下图:这里增加Recurse参数,这个参数可以实现下一级文件夹的递归访问...,命令如下:get-childitem -Recurse执行结果如下图:说明:针对开关函数,不需要去指定 true 和false ,如果加上 -参数,表示为true,如果执行命令不增加参数,表示为false...但是在大部分场景当中不建议使用位置参数进行参数指定,如果没有参数值或没有按照位置设置参数,执行命令非常容易出错。

    1.6K20

    PS编程补充说明

    [TOC] 3.运行脚本 描述: 脚本和批处理都属于伪可执行文件,它们只是包含了若干命令行解释器能够解释和执行的命令行代码。...- 男 注意事项: #必须放在脚本最上面否则报错CmdletBinding PS命令行支持:单引号,双引号,中文的单引号,中文的双引号 ,以及中文变量名,中文参数名(linux版的powershell...-name posh-ssh -Force -Verbose -Debug #查看模块命令 get-command -Module posh-ssh 在PowerShell中如何检测模块是否存在...view=netcore-3.1 下面再附带两个循环读取一个文件夹下的所有子文件夹下的、所有的文件个数的代码: Get-ChildItem -Path env:windir -Force -Recurse...powershell.exe -command "$path=(Get-Location).Path;$gifs=dir -Path $path -Filter '*.gif' -Recurse;if(

    2.3K10

    人人都值得学一点PowerShell实现自动化(2)会使用Excel简单函数就能上手PowerShell

    学习PowerShell最不怕学习资料少 相对Excel用户群体有录制宏的方式来学习VBA,在PowerShell的学习上,其实也是非常容易的,有时甚至比学习VBA更简单,在入门的角度来看。...在PowerShell中,我们一样可以使用dir这样的命令,但我们为了查看到其标准的命令,使用了一个Get-Alias的命令,将dir的标准命令找出来,PowerShell可以使用dir这样的别名的方式来简写命令或让...Get-ChildItem -Path F:\自媒体相关\其他文章分享\powershell\文件夹遍历 -Recurse 可以按【运行选择】将当前选择状态下的代码运行。...,流到后面输出csv命令使用,代码如下: Get-ChildItem -Path F:\自媒体相关\其他文章分享\powershell\文件夹遍历 -Recurse | Export-Csv -Encoding...若静下心来学习一下语法,使用现成的大量PowerShell命令,已经可以帮我们完成非常多的工作,再结合社区里大牛们写的一些轮子,我们在使用PowerShell的过程也将变得更加轻松。

    3.6K10

    PowerShell到底是个啥?跟CMD比起来强在哪里?看完这篇你就懂了

    PowerShell的管道可以传递完整的对象,这就意味着你可以把多个命令串联起来,形成强大的数据处理流水线。 PowerShell常用命令详解 说到PowerShell的命令,那真是太多了。...文件和目录操作 Get-ChildItem(别名:ls, dir, gci)是最常用的命令之一,用来列出文件和目录: # 列出当前目录所有文件 Get-ChildItem # 递归列出所有子目录的文件...Get-ChildItem -Recurse # 只显示文件夹 Get-ChildItem -Directory # 按大小排序显示文件 Get-ChildItem | Sort-Object Length...PowerShell实用技巧 在日常使用中,我总结了一些实用的技巧,能让你的工作效率大大提升。...现在PowerShell Core还支持跨平台,这意味着你在Windows上学会的PowerShell技能,在Linux和macOS上也能用。这对于混合环境的管理来说是个巨大的优势。

    3K10

    Windows11 批量删除.svn 文件夹:3个方法,按需选

    四、PowerShell 脚本删除如果熟悉命令行操作,PowerShell 脚本就像 “快速通道”,一行命令就能完成清理,适合需要批量处理多个项目的场景:1....打开 PowerShell 并进入目标文件夹按Windows+X组合键,在弹出的菜单里选择 “Windows PowerShell”(或 “Windows PowerShell(管理员)”,遇到权限问题时选管理员模式...);在 PowerShell 窗口里,用cd命令进入要清理的项目文件夹路径,比如 “项目在 D 盘的‘我的项目’文件夹”,就输入cd D:\我的项目,按回车(输入路径时可以复制文件夹路径,右键粘贴进去)...执行删除命令在当前路径下,复制粘贴以下命令,按回车:Get-ChildItem -Recurse -Directory | Where-Object { $_.FullName -like '*.svn...命令解释简单拆解下这条命令:Get-ChildItem -Recurse -Directory:递归获取当前文件夹及子文件夹里的所有目录;Where-Object { $_.FullName -like

    59310

    卸载WinDefend报错:The referenced assembly could not be found. Error: 0x80073701

    问题:多个安全软件的环境,内存泄漏,卸载WinDefend可解决,卸载其他安全软件也可以解决,在卸载WinDefend时报错0x800f0831(1)执行sfc /scannow无报错(2)试过RestoreHealth...Error: 0x800737013、使用AdvancedRun提权到TrustedInstaller执行命令删除KB5035849相关注册表后卸载WinDefend成功之所以删除kb5035849相关注册表...,是因为C:\Windows\Logs\CBS\CBS.log中的报错指向2024年3月这个补丁,而针对这个补丁的修复、卸载即便都成功,卸载WinDefend仍然报错,只能删掉kb5035849相关的1264..." /StartDirectory "C:\" /RunAs 8 /Run 3)在打开的TrustedInstaller权限的powershell...| Where-Object { $_ -like $pattern } foreach ($key in $keys) { Remove-Item -Path "$path$key" -Recurse

    12810

    Windows中使用Unix命令ls -l及快捷命令ll实现

    ls 命令是 Unix 和类 Unix 的操作系统中列出文件和目录的命令,Windows 中(cmd 命令提示符)是不支持的,它对应的命令是 dir,不过2006年发布的 Windows PowerShell...Windows Powershell 的 ls 命令和 Linux 是有差异的。...例如,-Recurse(Powershell) 和 -R(Linux),-Force 和 -f,-Hidden 和 -a 等。...ls -l 命令在 Linux 中是用来列出文件和目录的详细信息,包括权限、所有者、大小、修改时间等,也可以直接使用快捷命令 ll。...更多扩展配置&脚本文件可以参考我之前写的文章:Powershell增强:命令补全、主题美化及Git扩展保姆级教程 分享一些 Powershell ls 命令的常用属性: -Path:列出文件和目录的路径

    3.8K31

    如何使用PowerShell批量删除注册表项

    如何使用PowerShell批量删除注册表项 问题描述 注册表路径以及如何获得注册表子项 基于条件过滤删除项 For循环删除子项 问题描述 卸载了可牛压缩软件以后,发现右键菜单中仍然有可牛压缩的选项。...注册表路径以及如何获得注册表子项 在PowerShell中注册表也有路径,跟我们文件和文件夹路径类似,上面的注册表项的路径可以表示为: REGISTRY::\HKEY_USERS\S-1-5-21-3610452307...使用Get-ChildItem命令(别名dir或者l),代码如下: $root = "REGISTRY::\HKEY_USERS\S-1-5-21-3610452307-4043425157-186669480...命令选择出来要删除的元素以后,我们可以使用ForEach_Object命令(别名foreach或者%)遍历该数组删除所有元素,代码如下: $items | % {rm -Force -Recurse $...{$_.PSPath -like "*kzip_main.exe*"} | % {rm -Force -Recurse $_.PSPath} 在强调一遍,注册表删除有风险,最好进行备份再进行操作!!!

    5.1K10

    Powershell快速入门(三) 实战应用

    好像关于Powershell说的已经差不多了,所以最后一篇文章就来使用Powershell写一些脚本,帮助我们完成一些日常工作。 文件管理 常用命令 先来看看常用的文件管理命令。...Set-Location命令用于切换工作目录,它的别名是cd。 Get-Location命令用于获取当前工作目录,它的别名是pwd。 Get-ChildItem命令用于获取当前目录下的所有文件。...Get-ChildItem -Recurse *.exe 修改hosts 访问谷歌的一种方式就是更改hosts文件。这里就用Powershell做一个修改hosts的功能。...Remove-Item -path $path\hellokey -Recurse 获取当前.NET版本 下面的参考资料中列出了一个MSDN上的文档,告诉我们如何读取注册表的值来判断当前安装了.NET...使用它,我们可以在没有安装Excel的情况下编辑Excel文件。 首先需要安装它,可以利用Powershell的包管理器方便的安装。

    4.8K101

    统计项目的代码行数

    以下是一些常用的方法: 对于Unix/Linux/macOS用户: 使用find和wc命令 在命令行中,你可以使用find命令来查找所有的源代码文件(例如,查找所有.java文件),然后使用wc(word...你需要先安装它,然后运行在你的项目目录中。例如: cloc . 这个命令会统计当前目录下所有支持的编程语言的代码行数,并给出详细的报告。...对于Windows用户: 使用PowerShell: 在PowerShell中,你可以使用类似于Unix/Linux的命令来计算行数。...例如,对于.cs(C#源文件):(Get-ChildItem -Recurse -Filter *.cs | Select-String .).Count 这会递归地搜索所有.cs文件,并计算行数。...首先,你需要下载cloc的可执行文件或使用包管理器如Chocolatey来安装它。然后,你可以在命令行中使用它:cloc . 这将统计当前目录下所有文件的代码行数。

    3.5K10

    如何使用PowerShell批量删除注册表项

    注册表路径以及如何获得注册表子项在PowerShell中注册表也有路径,跟我们文件和文件夹路径类似,上面的注册表项的路径可以表示为:REGISTRY::\HKEY_USERS\S-1-5-21-3610452307...使用Get-ChildItem命令(别名dir或者l),代码如下:$root = "REGISTRY::\HKEY_USERS\S-1-5-21-3610452307-4043425157-186669480...基于条件过滤删除项因为我们要删除的子项名称中都包含“kzip_main.exe”这样的字符,所以我们使用Where-Object命令(别名where或者?)...命令选择出来要删除的元素以后,我们可以使用ForEach_Object命令(别名foreach或者%)遍历该数组删除所有元素,代码如下:$items | % {rm -Force -Recurse $_...{$_.PSPath -like "*kzip_main.exe*"} | % {rm -Force -Recurse $_.PSPath}在强调一遍,注册表删除有风险,最好进行备份再进行操作!!!

    3.2K50
    领券