Powershell get-childitem:找不到路径“”,因为它不存在

Powershell get-childitem:找不到路径“”,因为它不存在,powershell,Powershell,我正在尝试制作一个脚本,可以报告指定文件夹的文件夹大小 在我输入文件夹名称并且知道该文件夹存在后,我不断收到此错误 另外,如果我没有得到这个错误,那么我总是得到0 MB get-childitem : Cannot find path 'C:\WINDOWS\system32\downloads' because it does not exist. At C:\Users\Erik\Desktop\powershell script.ps1:58 char:12 + $folders = ge

我正在尝试制作一个脚本,可以报告指定文件夹的文件夹大小

在我输入文件夹名称并且知道该文件夹存在后,我不断收到此错误

另外,如果我没有得到这个错误,那么我总是得到0 MB

get-childitem : Cannot find path 'C:\WINDOWS\system32\downloads' because it does not exist.
At C:\Users\Erik\Desktop\powershell script.ps1:58 char:12
+ $folders = get-childitem $startfolder | where{$_.PSiscontainer -eq "T ...
+            ~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\WINDOWS\system32\downloads:String) [Get-ChildItem], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound, Microsoft.PowerShell.Commands.GetChildItemCommand
代码


所以。。我的电源外壳有点糟糕,但我已经让它为我工作了:

$startfolder = Read-Host -Prompt 'Please enter the folder name:'

#check that input is not empty
if([string]::IsNullOrEmpty($startfolder)) {            
    Write-Host "folder name is NULL or EMPTY"            
}

else {
    $subFolderItems = Get-ChildItem $startfolder.FullName -recurse -force | Where-Object {$_.PSIsContainer -eq $false} | Measure-Object -property Length -sum | Select-Object Sum
    $startfolder + " -- " + "{0:N2}" -f ($subFolderItems.sum / 1MB) + " MB"
}
输出如下所示:

test -- 2.65 MB

您的代码在计算所有文件的总大小方面有所改进,但它不能解释OP的症状,这可能是由于对当前位置的错误假设或键入的路径错误所致,实际上是一种倒退:$startfolder是一个字符串,但您正试图访问一个不存在的.FullName属性。OP的代码在这方面是正确的。问题在于PowerShell会话的运行架构以及该文件夹的位置。c:\windows\syswow64\downloads是否返回任何内容?
test -- 2.65 MB