求助:修改PowerShell脚本以获取共享文件的路径及大小
没问题,我来帮你调整这个脚本!
你的原脚本用了-Name参数,这会让Get-ChildItem只返回文件名的字符串,而不是完整的文件对象——这就是为什么你拿不到路径和大小的原因。我们只需要去掉这个参数,然后指定要提取的属性就行:
修改后的基础版本
这个版本会返回文件的完整路径(FullName)和字节大小(Length),PowerShell会自动以表格形式展示:
$Files = Get-Content lock.txt foreach ($File in $Files) { Get-ChildItem -Path Z:\lonmgb003_2 -Filter $File -Recurse | Select-Object FullName, Length }
进阶:显示更易读的文件大小(如MB)
如果觉得字节数不够直观,可以添加一个计算字段,把大小转换成MB并保留两位小数:
$Files = Get-Content lock.txt foreach ($File in $Files) { Get-ChildItem -Path Z:\lonmgb003_2 -Filter $File -Recurse | Select-Object FullName, @{Name='Size(MB)'; Expression={[math]::Round($_.Length / 1MB, 2)}} }
小提示:处理特殊文件名
如果你的lock.txt里有带通配符或者特殊字符的文件名,-Filter可能会有匹配问题,这时可以换成-Include参数,但记得要在路径末尾加上\*:
$Files = Get-Content lock.txt foreach ($File in $Files) { Get-ChildItem -Path Z:\lonmgb003_2\* -Include $File -Recurse | Select-Object FullName, Length }
这样调整后,你就能同时获取到每个文件的完整路径和大小啦!
内容的提问来源于stack exchange,提问作者pchowdary
相关产品推荐
相关产品推荐

