【问题标题】:Get-ChildItem is not showing all files in a folderGet-ChildItem 未显示文件夹中的所有文件
【发布时间】:2012-03-16 23:07:49
【问题描述】:

当我在 PowerShell 中调用 Get-ChildItem 时,它只返回目录中存在的一些文件。这是驱动程序文件夹,所以我尝试使用 -Force 参数以防它们被隐藏,但没有成功。

这很有趣,因为它在我的 Windows 7 32 位上完美运行,但不是 64 位。有什么想法吗?

【问题讨论】:

  • 你能告诉我们你正在运行的确切命令以及输出是什么吗?
  • 只需获取-ChildItem。输出完全是它应该减去目录中存在的一堆文件。
  • 您是否以管理员身份运行 PS?可能是安全问题。
  • 啊,想通了。我正在运行 x86 版本的 Powershell。运行64位,它似乎工作。不知道这会如何改变事情......
  • 如果您在问题中提供了您尝试的详细信息,那么在答案中显示您发现的详细信息(可能是屏幕截图),它将改善问题并允许其他人找到如果他们碰巧有同样的问题,可能的解决方案。

标签: powershell get-childitem


【解决方案1】:

我相信 PowerShell 会向您展示所有内容,但是您在 x86 PowerShell 提示符中查看的文件夹并不是您想的那样。您实际查看的目录位于 C:\Windows\SysWow64\Drivers 下,而不是 C:\Windows\System32\Drivers。这是由于在 64 位操作系统上运行的 32 位进程的 Windows 功能(Vista 和更高版本)称为虚拟化(特别是 File System Redirector)。当您运行 64 位 PowerShell 提示符时未使用虚拟化,因此您会看到真正的 C:\Windows\System32\Drives 目录。

在 32 位 PowerShell 提示符下,您可以使用以下路径查看“真正的”C:\windows\system32\drivers 目录:

Get-ChildItem C:\Windows\SysNative\Drivers

【讨论】:

    【解决方案2】:

    我在搜索类似问题时遇到了这个问题。我想列出用户文件夹的使用情况,但遇到了文件夹所有权/权限的问题。即使我是本地管理员,我也需要明确授予自己访问权限。不理想。下面给出了准确的用法,尽管有权限。 (当然,如果你想知道更详细的用法,你需要使用for循环什么的。)

    Get-ChildItem "C:\Users" -Recurse -Force -ErrorAction SilentlyContinue | Measure-Object Length -Sum
    

    至于包含哪些文件,默认不显示隐藏文件和系统文件:https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-childitem?view=powershell-6

    • Hidden 参数:仅隐藏文件
    • System 参数:仅限系统文件
    • Force 参数:包括隐藏文件和系统文件,以及常规文件

    为了确认,我授予自己访问其中一个用户目录的权限。我比较了 PowerShell 报告的大小(授予权限之前)和文件资源管理器中报告的大小(授予权限之后)。大小和数量相同。

    【讨论】:

      猜你喜欢
      • 2012-12-28
      • 1970-01-01
      • 2015-10-29
      • 1970-01-01
      • 1970-01-01
      • 2019-08-26
      • 2020-06-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多