PowerShell 脚本进阶:如何统计目录大小并包含隐藏文件 目录 引言 PowerShell 基础:Get-ChildItem 和文件统计 2.1 Get-ChildItem 基本用法 2.2...隐藏文件:在 Windows 中,文件或目录可以设置 Hidden 属性(如 .git 目录)。 系统文件:通常是操作系统关键文件(如 pagefile.sys)。...优化脚本:递归计算并包含隐藏文件 4.1 原始脚本分析 最初的脚本仅计算非隐藏目录和文件: Get-ChildItem -Directory | ForEach-Object { $size =...脚本执行优化与注意事项 5.1 提高执行效率 避免重复计算:如果目录层级很深,递归遍历可能较慢,可考虑并行计算(ForEach-Object -Parallel,需 PowerShell 7+)。...总结 Get-ChildItem -Force 是统计隐藏文件的关键。 递归计算 适用于文件夹大小统计,但需注意性能问题。 错误处理 可避免因权限问题导致脚本中断。
然而,这些日志文件如果不加以管理,很容易膨胀至巨大大小,从而占用大量的磁盘空间。...只需以管理员身份执行下面的PowerShell脚本,即可轻松找出占用空间最大的文件夹或文件: Get-ChildItem -Directory | ForEach-Object { $folder...执行脚本:将上述脚本粘贴到PowerShell窗口中,按Enter执行。 分析结果:脚本执行完成后,会列出当前目录下所有子目录的大小(以GB为单位),并按大小降序排列。...这样,您可以快速识别出占用空间最大的文件夹。 手动清理:根据脚本的输出结果,找到那些占用空间过大的Docker日志文件或其他文件夹,并进行手动清理。...某些日志文件可能需要Docker服务停止后才能删除。 结语 通过上述方法,您不仅可以解决因Docker日志文件导致的C盘空间爆满问题,还可以应用这一技巧,管理系统中的任何其他大文件或文件夹。
,并且不存在于notSearhFolderArr数组中, 获取文件夹下的所有文件及文件夹, 遍历,判断子元素是文件,并且文件类型存在于searchTypeArr,如果真则存在返回路径 判断子元素...,是文件夹并且不属于notSearhFolderArr数组中, 执行第一步,进行递归搜索 代码: # 根据配置好的文件,搜索文件夹 import os import io import sys sys.stdout...) and (fileType in searchFileTypeArr): # 处理文件 searFilePathArr.append(currentPath) if...os.path.splitext:拆分路径中的文件扩展名于其他 os.path.isfile: 路径是否是文件 append: 向数组中追加一个元素 extend: 向数组追加一个数组 运行结果...: 程序返回的事根目录下所有的pdf文件路径列表 这个脚本稍作修改就可以查询多个文件类型,对文件进行分类,获取要查询的文件路径后,还可以对文件进行批量备份到一个文件夹下,或者将搜索结果直接打包压缩。
: if os.path.isdir(each_file): filetype_dict.setdefault('文件夹', 0) # 如果键不存在于字典中,将会添加键并将值设为默认值 filetype_dict...(file_type, 0) filetype_dict[file_type] += 1 for each_type in filetype_dict.keys(): print('该文件夹下共有类型为...如遇到文件夹,则进入文件夹继续搜索,程序实现如图: ?...(如果当前文件夹内包含文件夹,则进入文件夹继续搜索)所有含有该关键字的文本文件(.txt后缀),要求显示该文件所在的位置以及关键字在文件中的具体位置(第几行第几个字符),程序实现如图: ?...target_words)) if option.upper() == 'YES': print_pos(target_words_dict) target_words = input('请将该脚本放于待查找的文件夹内
场景背景在日常工作和学习中,我们经常会遇到需要批量重命名文件的情况。...# 批量重命名图片文件脚本# 将 CDZCQ_500×263_0001 格式重命名为 CDZCQ_1 格式# 设置要处理的文件夹路径$folderPath = "C:\Your\Folder\Path"...# 请修改为你的实际文件夹路径# 进入目标文件夹Set-Location $folderPath# 获取所有符合条件的文件$files = Get-ChildItem -File | Where-Object...-ForegroundColor Yellow操作步骤备份原始文件:在执行任何批量操作前,建议先复制一份原始文件修改路径:将脚本中的 $folderPath 变量改为你的实际文件夹路径测试运行:先使用预览模式确认重命名效果正式执行...file.Name -match "^IMG_\d+x\d+_(\d+)") { $newName = "IMG_$([int]$matches[1])" + $file.Extension}保留更多信息# 如果想保留尺寸信息
获得服务信息命令 echo "List the service that stopped " Get-Service | Where-Object {$_.status -eq "stopped"} //查看已经停止的服务对象...test copy-item C:\hello.txt C:\test ls hello.txt **删除文件 rm hello.txt remove-item hello.txt **当前目录下创建以文件夹...**创建以文件夹 mkdir C:\test\tst new-item C:\test\tst -type directory ls remove-item tst -recurse echo "...command :" get-childitem -recurse echo "Get-ChildItem env: " Get-ChildItem env: echo "get item with...**获得注册表中应用程序的成员 Get-Item hkcu:\software | Get-Member echo "Using the Test-Path Cmdlet" test-path C:\test
一个文件夹中要批量重命名文件,不用下载任何软件,让AI写一个PowerShell 脚本就可以轻松完成了。...在deepseek中输入提示词: 写一个PowerShell 脚本:删除文件夹“F:\佩格和小猫”里面所有mp3文件标题名中的字符串“trimmed_佩格和小猫【英文版】” Deepseek的回复: 适用于...如果你仍然需要在 cmd 中运行,请确保在 cmd 中执行,而不是 PowerShell。...如果需要在批处理脚本中使用,请将 %f 替换为 %%f。...复制PowerShell 脚本,在文件夹中右击,点击:在终端中打开 进入powershell命令行界面,粘贴刚才复制的脚本,然后按下enter键,运行脚本 文件标题全部重命名完成:
在 MATLAB 中,exist 函数用于检查指定的变量、函数、文件或目录是否存在。它返回一个整数值,用于表示存在的对象的类型或存在的情况。...':包 如果不指定 filetype,则默认为 'builtin'。...'); end 检查工作区变量是否存在 创建一个名为 testresults 的变量,然后确认它是否存在于工作区中。...检查文件夹是否存在 创建文件夹 myfolder,然后检查它是否作为文件夹存在。...mkdir myfolder; exist myfolder dir ans = 7 如果您指定类型为 file,MATLAB将同时搜索文件和文件夹,因此返回相同的结果。
Tips: New-Item 命令来创建文件夹时,如果对已存在的文件使用 New-Item -Force,此文件会被完全覆盖。...Get-ChildItem * -Include *.csv -Recurse | Remove-Item # 递归删除子文件夹中的文件 Remove-Item * -Include *.doc -...Exclude *1 # 删除文件夹中的某些文档文件 Get-ChildItem * -Attributes Hidden | Remove-Item # 删除隐藏的只读文件 指定条件...Set-Content -Path C:\Temp\* -Filter *.txt -Value "Empty" # 示例5.指定内容的备用数据流如果流不存在则此cmdlet会创建它不支持通配符。...如果Tee对象是管道中的最后一个命令,则命令输出将显示在提示处(类似于Linux中的tee命令)。
,手动检查还是比较困难,得整个脚本来做 这里提供一个 powershell 脚本 # 检索注册表中 Index 值为 0 的计划任务名称及其注册表位置 $taskRegistryPath = "HKLM...上面能够被排查出来,是因为存在无 SD 项的文件夹,如果攻击者再变态一点,直接把注册表中文件夹都删除了,会怎么样呢?...不着急直接变成变态,我们先尝试将文件夹中的计划任务test5删除掉 不耽误计划任务执行 开始变态,删除掉 testdir 不耽误计划任务执行 12....,可以枚举,重启计划任务服务计划任务继续执行,不耽误 删除文件夹 SD 项 这种隐藏的弱点也就是计划任务文件夹没有 SD 项,重启计划任务服务计划任务继续执行,不耽误 不保留计划任务注册表项 删除注册表中的计划任务...pwd=yjxy 提取码: yjxy 插个 flag ,如果恶趣味的攻击者向计划任务执行日志中定期写一堆不存在的计划任务日志那会怎么样 ? 真的遇到了,但愿你是个不认真的人~
(PowerShell中实际命令是Get-ChildItem,dir和ls是它的常用别名)。...mdD:\Users\userD\dir1\dir2(在D:\Users\userD下同时创建dir1和dir1\dir2两个嵌套文件夹,如果dir1不存在的话)。...新手提示:复制文件夹时,如果想把里面的所有东西都复制过去,需要加-Recurse参数。...示例:"第一行笔记">C:\Users\userC\mynote.txt(创建mynote.txt并写入这句话,如果文件已存在则覆盖)dirD:\Users\userD>D:\Users\userD\filelist.txt...如果需要传递数据,应使用Write-Output或直接让命令产生输出。示例:Write-Host"操作已完成。"Write-Host"警告:文件不存在!"
案例1:遍历文件夹示例 虽然说PowerShell是一个要编写代码的方式交互的脚本语言,没有像其他工具那样方便直接界面完成,但脚本语言有其好处是灵活处理,懂使用后,灵活度高出许多。...可以点击运行、插入、复制等按钮,具体对应的情形可以自行测试下,现在选择【复制】按钮,往脚本编辑区粘贴一下。将看到我们已经通过界面生成了以下的代码命令。遍历指定的Path路径,并且递归遍历子文件夹。...Get-ChildItem -Path F:\自媒体相关\其他文章分享\powershell\文件夹遍历 -Recurse 可以按【运行选择】将当前选择状态下的代码运行。...和Export-Csv串起来,管道就是一个竖线符号,代表前面的结果直接输送到后面使用,即前面生成的文件、文件夹信息,流到后面输出csv命令使用,代码如下: Get-ChildItem -Path F:\...\powershell\childItems.csv" 然后就生成了一个csv文件,里面存有我们Get-ChildItem遍历所有文件、文件夹项目命令生成的结果清单。
Get-ChildItem -Recurse # 只显示文件夹 Get-ChildItem -Directory # 按大小排序显示文件 Get-ChildItem | Sort-Object Length...Where-Object {$_.Status -eq "Running"} # 获取特定服务 Get-Service -Name Spooler Start-Service和Stop-Service用来启动和停止服务...: # 在文件中搜索文本 Select-String -Path "*.log" -Pattern "error" # 搜索多个文件 Get-ChildItem *.txt | Select-String...场景二:系统信息收集 如果要收集系统的硬件信息,CMD基本上只能调用systeminfo命令,然后用findstr过滤,很不方便。...问题1:脚本执行被阻止 这是最常见的问题,解决方法是修改执行策略: # 临时允许执行脚本 Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
清空缓存所有数据 offsetExists ,exists别名 offsetGet ,get别名 offsetSet,set别名 offsetUnset,delete别名 getOrSet,获取缓存,不存在则设置缓存...缓存提供的方法 get 获取缓存 set 设置缓存 inc 缓存数据自增 dec缓存数据自减 rm 删除缓存 clear 根据tag 删除缓存 pull 读取缓存并删除缓存 remember读取缓存,不存在则设置...ThinkPHP5 则是在读取缓存的时候,如果缓存过期则删除。如果缓存保存的是多层级的文件夹,Yii2会删除缓存文件夹,但是ThinkPHP5 不会删除。...如果读文件加了LOCK_NB标志,则读文件不阻塞,直接读取失败!读文件先执行读锁,其他进程可读。写入文件必须等读锁释放。如果写文件加了LOCK_NB标志,则写文件不阻塞,直接失败 文件状态缓存。...如果在一个脚本中多次检查同一个文件,只在最初会读取信息,其他都是从缓存中获取。
0x00 简介 攻击者通过创建服务进行权限维持过程中,常常会通过一些手段隐藏服务,本文主要演示通过配置访问控制策略来实现隐藏的方式以及排查方法的探索 不包含通过修改内存中链表进行隐藏的方式 0x01...如果此服务被停止,游戏保存数据将不会上传至 Xbox Live 或从 Xbox Live 下载。...当然,这前提是注册表有访问权限,如果攻击者额外设置了注册表权限,可以先取消注册表权限 方法二 高权限查看法 这种隐藏方式无非就是谁可以看,谁不可以看,在 Linux 中,几乎所有的限制对 root 都没用...CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)" 这样就可以通过 services.msc 进行管理了 删除服务 sc delete "ServiceName" 0x09 删除注册表文件夹会怎么样...SDDL 进行隐藏的服务恶意直接按照文中的方法,重新赋权,就可以删除或停止了 对于进行了 SDDL 同时删除了注册表项的服务,需要通过重启来进行删除
因为windows内置了zip格式文件的解压缩,所以powershell中可以直接调用powershell的函数就能实现zip解压缩....为空则默认解压到 $package所在文件夹 function unzip([string]$zipFile,[string]$targetFolder){ # 检查是否为zip后缀 if...[string]$package, [string]$targetFolder, [switch]$quiet, [switch]$help ) # 上一条命令执行出错则中止脚本执行,并输出调用堆栈信息...$','$1') -replace '(^"|"$)','' } # 为后缀为$suffix压缩包寻找解压缩工具 # 如果定义了 $UNPACK_TOOL 则优先使用它做为解压缩工具 # 否则 调用 assoc...$targetFolder为空则默认解压到 $package所在文件夹 function unpack([string]$package,[string]$targetFolder){ if(
在接下来的内容中,我们将逐步介绍PowerShell的基本命令和脚本编写技巧。无论您的技能水平如何,您都可以从中获取有价值的知识,快速上手这些强大的工具。 接下来,让我们开始探索Power的世界吧!...Get-Process # 获取系统信息 Get-ComputerInfo # 列出文件夹内容 Get-ChildItem -Path "C:\Path\To\Directory" 以上是在命令行中运行命令...,下面是在ise中实现,打开如下图所示,windows+R,输入powershell_ise 出现下面的界面,点击如图所示的新建脚本,然后输入一些常用的命令 #打开网址 Start-Process http...,如果不是专业的人不需要懂多语法,就上面的命令就够用了,在工作中能提高很大的效率,我们运行某个命令,直接选中这行,右键,选择 运行选定内容 就可以了,大家可以试一试。...如果大家不想桌面很多文档或程序看着很乱的话,可以直接在D盘或其他盘很系统地建文件夹,将文件放到里面,不必担心文件夹繁琐或自己经常忘记文件或文件夹在哪里。以上的方法是直接可以打开的,非常的方便。
case 'writeAndInit': $openMethod_str='w'; //只写,指针指向文件头将大小截为零,不存在则创建...case 'readWriteAndInit': $openMethod_str='r+'; //读写,指针指向文件头将大小截为零,不存在则创建...break; case 'writeAndAdd': $openMethod_str='a'; //只写,指针指向文件末尾,不存在则创建...case 'readWriteAndAdd': $openMethod_str='a+'; //读写,指针指向文件末尾,不存在则创建...,如果是arr则顺序命名 $allowType_arr允许上传的文件类型,留空不限制 $maxSize_int允许文件的最大值,留空不限制 返回的是新文件信息的二维数组:$reFileInfo_arr
文件夹不存在,请手工创建!'...'文件夹不存在,请手工创建!'...'文件夹不存在,请手工创建!'...'文件夹不存在,请手工创建!'...'文件夹不存在,请手工创建!'; } } Brup抓包,然后将文件 lyshark.php 中添加空格,直接放行数据包。
文件夹不存在,请手工创建!'...'文件夹不存在,请手工创建!'; } } 解题思路 黑名单判断后缀名,我们可以上传.php3后缀进行绕过。...'文件夹不存在,请手工创建!'; } } 解题思路 通过查看源码发现并没有首尾去空,文件夹后缀增加空格进行绕过从而上传webshell。...Windows下NTFS文件系统的一个特性,即NTFS文件系统的存储数据流的一个属性DATA时,就是请求a.asp本身的数据,如果a.asp还包含了其他的数据流,则a.asp:lake2.asp, 请求...'文件夹不存在,请手工创建!'