小编Luc*_*kor的帖子

如何在PowerShell中动态向阵列添加元素?

我还没有太多的PowerShell经验,我正在努力教自己.

我正在尝试为更大的项目提供一些概念代码证明.这里的主要目标是使用函数动态创建并向数组添加元素.

这是我的代码:

$testArray = @()
function addToArray($Item1)
{
    $testArray += $Item1
    "###"
}

$tempArray = "123", "321", "453"
$foldertest = "testFolder"

foreach($item in $tempArray)
{
    addToArray $item
}
"###"
Run Code Online (Sandbox Code Playgroud)

每次函数完成时,数组都变为空.请记住,我的大部分编程经验都来自Java,PHP,一些C和C++,仅举几例,如果我在PHP中这样做(当然调整语言语法),这本来可以正常工作.

arrays powershell function dynamic

17
推荐指数
3
解决办法
7万
查看次数

"["和"]"字符弄乱了get-childitem

使用PowerShell 4.0,我试图获得多个目录的大小,我得到的窗口告诉我和我的代码告诉我的结果非常不一致.

有问题的代码是:

$temp4 = ($folderInfo.rootFolder).fullname
$folderInfo.directories += Get-ChildItem -LiteralPath $temp4 -Recurse -Force -Directory
$folderInfo.directories += $folderInfo.rootFolder
foreach ($dir in $folderInfo.directories)
{
    $temp3 = $dir.fullname
    $temp2 = Get-ChildItem -LiteralPath $temp3 -Force
    $temp = (Get-ChildItem -LiteralPath $dir.fullname -Force -File | Measure-Object -Property length -Sum -ErrorAction SilentlyContinue).Sum
    $folderInfo.totalSize += $temp
}
return $folderInfo
Run Code Online (Sandbox Code Playgroud)

如果$folderInfo.rootFolder = D:\sample 那时我得到我想要的东西,但如果$folderInfo.rootFolder = D:\[sample 那时我得到了

Get-ChildItem:无法检索cmdlet的动态参数.指定的通配符模式无效:sample [sample at C:\ powershell scripts\test.ps1:55 char:12 + $ temp =(Get-ChildItem $ dir.fullname -Force -File | Measure-Object -Property l ... …

directory powershell get-childitem

6
推荐指数
1
解决办法
3677
查看次数