Powershell导出到csv
我有包含一些共享路径的文本文件(例如Powershell导出到csv,powershell,Powershell,我有包含一些共享路径的文本文件(例如\\INTBMCELB\Abbott ADD HR Finance或\\INTBMCELB\Abbott ADD HR Finance\u VSS等)。 我读取了此文本文件中的所有路径以及每个路径中的文件夹。 文件夹的详细信息从.csv文件加载。 目前,我在这个.csv文件中有一个名为size的字段,我需要再添加一个名为“文件类别”的字段 文件类别字段应显示基于其文件大小的说明: 微小(0 KB-10 KB) 小型(10KB-100KB) 中等大小(100
\\INTBMCELB\Abbott ADD HR Finance
或\\INTBMCELB\Abbott ADD HR Finance\u VSS
等)。我读取了此文本文件中的所有路径以及每个路径中的文件夹。
文件夹的详细信息从
.csv
文件加载。目前,我在这个
.csv
文件中有一个名为size
的字段,我需要再添加一个名为“文件类别”的字段
文件类别
字段应显示基于其文件大小的说明:
- 微小(0 KB-10 KB)
- 小型(10KB-100KB)
- 中等大小(100 KB–1 MB)
- 大容量(1MB-16MB)
- 巨大(16 MB-128 MB)
- 巨大的(>128MB)
$infle='C:\Users\417193\Desktop\MyShareBatch\SharePaths.txt'
$outdir='C:\Users\417193\Desktop\MyShareBatch\MyShareOuts'
foreach($dir-in(获取内容$infle)){
Get-ChildItem-Path$dir-Filter*.-Recurse |选择对象名称,
@{Name=“Owner”表达式={(Get ACL$\uUx.fullname).Owner}},CreationTime,
@{Name=“FileModifiedDate”表达式={$\ LastWriteTime},
@{Name=“FileAccessedDate”表达式={$\ u0.LastAccessTime},
@{Name=“Attributes”;表达式={$\属性},
@{l='ParentPath';e={Split Path$\ u.FullName}},
@{Name=“DormantFor(days)”;表达式={[int]((获取日期)-$\ux.LastWriteTime).TotalDays},
@{N=“FileCategory”E={Get FileSizeCategory($)},
@{Name=“Size”表达式={if($\.PSIsContainer-eq$True){(New Object-com Scripting.FileSystemObject).GetFolder($\.FullName.Size}其他{$\.Length}}
}
函数Get FileSizeCategory($Object){
如果($Object.PSIsContainer)
{
$Length=(新对象-coobject Scripting.FileSystemObject).GetFolder($Object.FullName).Size
}
其他的
{
$Length=$\长度
}
交换机($长度){
{$ule-10KB}{$Category=“Tiny”break}
{$\le 1MB}{$Category=“Medium”break}
{$\le 16MB}{$Category=“Large”break}
{$ule-128MB}{$Category=“mage”break}
默认值{$Category=“巨人”}
}
}
当我尝试从远程服务器执行上述脚本时,文件类别字段没有得到更新。我也尝试使用本地服务器路径,但仍然存在相同的问题。在我的本地计算机上,脚本在所有字段中都成功执行。我试图删除导出到
.csv
并打印输出,但问题仍然存在。尝试将整个\u函数Get-FileSizeCategory
移动到$outdir
下方和foreach
之前。另外,
\u函数Get-FileSizeCategory
没有返回任何内容,因此在右括号上方添加返回$Category
,即:
函数Get FileSizeCategory($Object){
......
默认值{$Category=“巨人”}
}
返回$Category
}
应该这样做。如何从远程服务器执行它?