我需要检查一个文件夹并创建一个包含所有不同扩展名的数组 (这部分很好)
$dir = dir C:\Users\seppe\Desktop\School\Scripting\Lab06\scripting_Lab06_opdr3 | Group-Object -property extension | Format-Table -Property Name
现在问题是:使用这个数组我需要制作一个foreach来制作不同的文件夹。文件夹名称必须是不同类型的文件(例如:doc。我有这个:
foreach($_ in $dir ){
mkdir C:\Users\seppe\Desktop\School\Scripting\Lab06\scripting_Lab06_opdr3\$_
}
但是我得到5(在我的情况下我只需要3个(因为文件夹中有3种类型的文件))文件夹但是这个名字是白色的:
Microsoft.PowerShell.Commands.Internal.Format.FormatEndData
Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData
Microsoft.PowerShell.Commands.Internal.Format.FormatStartData
Microsoft.PowerShell.Commands.Internal.Format.GroupEndData
Microsoft.PowerShell.Commands.Internal.Format.GroupStartData
答案 0 :(得分:0)
您需要在创建文件夹时指定$ _对象的Name
属性(因为它包含扩展名)
mkdir C:\Users\seppe\Desktop\School\Scripting\Lab06\scripting_Lab06_opdr3\$_.Name
或者在创建要开始的阵列时仅选择扩展名:
$dir = Get-ChildItem C:\Users\seppe\Desktop\School\Scripting\Lab06\scripting_Lab06_opdr3 | Select-Object -ExpandProperty Extension
答案 1 :(得分:0)
因为总有几种方法:
cd "C:\Users\seppe\Desktop\School\Scripting\Lab06\scripting_Lab06_opdr3\"
$Extensions = (dir . -file | %{$_.Extension} | Sort -unique).Trimstart(".")
$Extensions | %{If (!(Test-Path $_)){MD $_}}