从 Get-ChildItem -Path 返回对象数组

2024-05-07

从 powershell 开始,ls -R *.txt将按目录递归列出文件,或者更好:

PS> Get-ChildItem -Path C:\Test -Name

logs

anotherfile.txt
Command.txt
CreateTestFile.ps1
ReadOnlyFile.txt

但我如何将其输入数组?我想要一个文件(?)对象本身的数组,查看:

Get-ChildItem "C:\WINDOWS\System32" *.txt -Recurse | Select-Object FullName

https://stackoverflow.com/a/24468733/262852 https://stackoverflow.com/a/24468733/262852

我正在从这些类型的命令中寻找带有 powershell 的“文件”对象数组。

可能更好的语法:

Copy-Item -Filter *.txt -Path c:\data -Recurse -Destination C:\temp\text

但我不需要复制这些项目,而是想要一个对象,或者更确切地说,对象数组。不是文件的路径,也不是文件,大概是 powershell 引用或指向文件的指针。

(阅读fine https://learn.microsoft.com/en-us/powershell/scripting/samples/working-with-files-and-folders?view=powershell-6#listing-all-the-files-and-folders-within-a-folder现在手动。)


tl;dr

  • 当您在变量中捕获 PowerShell 语句的输出时(例如,
    $output = Get-ChildItem ...), 这是自动地如果有的话收集在一个数组中两个或更多输出对象。

  • 确保数组是always使用过 - 即使只有一个single or no输出对象-使用@(...) (e.g.,
    $output = @(Get-ChildItem ...))


  • PowerShell cmdlet,例如Get-ChildItem,可以输出任意数量的对象。

    • Get-ChildItem输出[System.IO.FileInfo] and/or [System.IO.DirectoryInfo]对象,具体取决于是否输出有关文件和/或目录的信息。

    • To 确定给定 cmdlet 的输出对象类型:

      • 运行,例如(Get-Command Get-ChildItem).OutputType
      • 如果这不起作用,或者要查看特定调用的输出类型,请使用
        Get-ChildItem | Get-Member.
      • Get-Help -Full Get-ChildItem应该显示一个OUTPUTS部分以及网上帮助 https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-childitem#outputs,尽管不是这样的情况Get-ChildItem它不太具体,因为Get-ChildItem还可以与文件系统以外的提供者一起使用。
  • When 输出到pipeline,每个输出对象都被传递单独地到管道中的下一个命令通常用于立即处理。

  • When 输出被捕获在variable ($var = ...),以下逻辑适用:

    • If 两个或更多对象是输出,它们被收集在常规 PowerShell 数组中,其类型为[object[]](即使实际元素具有特定类型)。
    • If one对象是输出,它是输出as-is;也就是说,它是not包裹在一个数组中。
    • If no输出对象,输出“数组值 null”(有时因其类型名称而称为“AutomationNull”),其在表达式上下文中的行为类似于$null在枚举上下文中,例如空集合;它导致没有可见的输出 - 请参阅这个答案 https://stackoverflow.com/a/41568525/45375了解详情。

所以,当在变量中捕获时,给定的命令可能情境地 return:

  • 对象数组
  • 单个对象
  • “没有什么” ([System.Management.Automation.Internal.AutomationNull]::Value)

确保给定命令的输出是always被视为array,您有两个选择:

  • Use @(...), the 数组子表达式运算符 https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_operators#array-subexpression-operator--; e.g.

    • $fileSystemObjects = @(Get-ChildItem -Recurse -Filter *.txt)
  • 对目标变量进行类型约束[array](这相当于并且更容易输入,[object[]]).

    • [array] $fileSystemObjects = Get-ChildItem -Recurse -Filter *.txt

也就是说,在 PSv3+ 中,您通常不需要担心给定变量是否包含标量(单个值)或数组, 因为标量可以隐式地被视为数组: 你可以打电话.Count即使在标量上,并使用索引([0], [-1]) - see 这个答案 https://stackoverflow.com/a/44035802/45375了解详情。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Get-ChildItem -Path 返回对象数组 的相关文章

  • iPhone存储然后从Documents文件夹中读取文件

    这一定很容易 但我想将一个文件放在 文档 文件夹中 该文件在启动时读入 我有关于如何阅读的代码 并已确认其在正确的目录中查找 但是 当我保存在 xcode 中的 Resources 文件夹中时 我的文件 RootList txt 存储在 R
  • 如何将 CString 传递给格式字符串 %s?

    class MyString public MyString const std wstring s2 s s2 operator LPCWSTR const return s c str private std wstring s int
  • 对 FileList 对象进行排序

    我正在尝试使用新的文件 API 对输入文件进行排序 它返回的列表似乎是不可变的 var x var files e target files FileList object Loop through the FileList and ren
  • f.read 为空

    我在解释器中完成这一切 loc1 council council1 file1 open loc1 r 此时我可以执行 file1 read 并将文件的内容作为字符串打印到标准输出 但如果我添加这个 string1 file1 read 字
  • PowerShell:如何在名称为“*”(星号/星号)的文件/文件夹上创建选择器?

    我需要从 PS 修改注册表 此注册表项与特定文件 所有扩展的文件夹 的上下文菜单相关 HKEY CURRENT USER Software Classes 目前我想将项目添加到此路径 HKCU Software classes shell
  • 使用 PowerShell 批量复制和重命名文件

    我正在尝试使用 PowerShell 批量复制和重命名文件 原始文件名为AAA001A jpg AAB002A jpg AAB003A jpg等 我想用新名称复制文件 方法是从文件名中删除前四个字符以及句点之前的字符 以便复制的文件被命名为
  • 如何从图像生成 tiff/box 文件以在 Windows 中训练 Tesseract

    我正在尝试在 Windows 中训练 Tesseract 为此我需要一对 tiff box 文件 并且我正在尝试使用 jTessBoxEditor 创建它 但它不接受图像作为输入 我也尝试过 boxFactory 但它无法正常运行 有谁知道
  • PowerShell 输出在函数之间交叉

    我正在 Windows 10 上的 5 1 版本中编写一个 PowerShell 脚本 该脚本获取有关本地系统 以及最终其子网 的某些信息并将其输出到文本文件中 起初 我将所有方面都集中在一个函数中 我在输出时遇到了输出问题getUsers
  • JScript:如何运行外部命令并获取输出?

    我正在使用 cscript exe 运行 JScript 文件 在脚本中我需要调用外部console命令并获取输出 Tried var oShell WScript CreateObject WScript Shell var oExec
  • 如何运行 Windows 批处理文件但隐藏命令窗口?

    如何运行 Windows 批处理文件但隐藏命令窗口 我不希望 cmd exe 在执行文件时在屏幕上可见 这可能吗 如果你写一个非托管程序并使用创建进程 https learn microsoft com en us windows win3
  • netstat 中未显示正在使用的端口,但尝试使用该端口被 Windows 拒绝

    我已经找到了这个问题的答案 只是想记录我的发现 在我最近的一个项目中 我发现某个端口不会在 netstat 中显示为正在使用 但是当我的项目尝试使用该端口时 会抛出错误 例如 假设我想使用端口 53000 netstat ano finds
  • 无法在 Windows 7 上安装 Android USB 驱动程序

    所以我想使用我的新 Nexus 5 来调试我的应用程序 我尝试通过以下方式安装 Android USB 驱动程序装置经理 http developer android com tools extras oem usb html Win7但我
  • PowerShell 解锁/卸载导入的 CSV

    早晨 我想问题就在标题里 我有一个脚本 它通过导入 CSV 的文件夹结构运行 与每个脚本一起工作 然后在完成后尝试删除它们 遗憾的是 其中很多都锁定在 PowerShell 上 而我删除它们的唯一方法就是关闭 PS 有什么方法可以卸载csv
  • 使用 shell_exec 将 PHP 转换为 Powershell

    如果我运行 output shell exec powershell get service dhcp 我得到了 dhcp 服务的完美输出 显示正在运行 但如果我运行 output shell exec powershell get use
  • iCloud Drive 内用户选择的文件夹内的垃圾文件

    我的应用程序可在任何用户选择的文件夹内处理用户 txt 文件 创建 更改 删 除 我只是在内部存储书签以访问用户选择的文件夹和文件 现在 在 macOS Catalina 中 当源文件夹位于 iCloud Drive 内时 系统仍然允许我创
  • python 中的文件输出给我垃圾

    当我编写以下代码时 我得到的输出是垃圾 这只是一个寻找素数的简单程序 当第一个 for 循环范围仅达到 1000 时 它会起作用 但一旦范围变大 程序将无法输出有意义的数据 output open output dat w for i in
  • 如何使用 python(版本 2.5)压缩文件夹的内容?

    一旦我在特定文件夹中拥有了所需的所有文件 我希望我的 python 脚本能够压缩文件夹内容 这可能吗 我该如何去做呢 在 python 2 7 上你可以使用 Shutil make archive base name 格式 root dir
  • 如何使用C++在Windows中获取MAC地址? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用“for”循环迭代目录中的所有文件

    如何使用 a 迭代目录中的每个文件for loop 我如何判断某个条目是目录还是文件 这会递归地列出当前目录及其子目录中的所有文件 并且仅列出文件 for r i in do echo i 此外 如果您在批处理文件中运行该命令 则需要将 符
  • 原子的 C++ 内存屏障

    在这方面我是个新手 谁能提供以下内存屏障之间差异的简化解释 窗户MemoryBarrier 围栏 mm mfence 内联汇编asm volatile memory 内在的 ReadWriteBarrier 如果没有简单的解释 一些好文章或

随机推荐

  • 为什么自动关闭脚本元素不起作用?

    浏览器无法正确识别的原因是什么 只有这一点是公认的 这是否打破了 XHTML 支持的概念 注意 此声明至少对于所有 IE 6 8 beta 2 都是正确的 XHTML 1 规范的非规范性附录 HTML 兼容性指南 指出 3 元素最小化和空元
  • 应用程序和插件修订,使 Origen 应用程序生产做好准备

    我们的开发应用程序有大约 12 个自制插件和许多 Origen gems 需要从开发转向生产级质量 我看到许多不同的主题开始here http origen sdk org origen guides misc revisioncontro
  • 如何在网页上使用 Apple 新的 San Francisco 字体

    我想在网站上使用新的 San Francisco 字体 我试过了 font San Francisco Helvetica Arial san serif 无济于事 我已经尝试过以下问题的答案这个问题 https stackoverflow
  • matplotlib - 模块“sip”没有属性“setapi”

    我刚刚设置了带有所有 Python 扩展的 VS Code 通过 Anaconda Python 版本为 3 8 3 解释器是 venv 当我运行这段代码时 import matplotlib pyplot as plt 错误显示 Exce
  • MySQL 不将 ı 视为 i?

    我在 MySQL 5 7 27 中有一个用户表utf8mb4 unicode ci整理 不幸的是 没有像 i 那样进行线程化 以下查询将找不到Y lmaz select id from users where name Yilmaz 我对其
  • 转换为 id 与真实类类型之间的差异,目标 C

    以下 2 种说法有什么区别 UILabel mainLabel id cell viewWithTag 10 and UILabel mainLabel UILabel cell viewWithTag 10 简短的回答 没有 这两种强制转
  • 如何对URL参数传输的秘密数据进行编码/加密?

    故事是这样的 我必须将一些机密信息从一个脚本传递到另一个脚本 在第一个脚本中 我需要先加密数据 然后再加密have to将加密数据附加到 GET 请求中并将其发送到另一个脚本 URL 看起来像这样 http mydomain com mys
  • 阻止 OpenGL.framework 在 Cocoa 应用程序中加载

    我的应用程序链接到这些框架 Cocoa Framework AppKit Framework CoreData Framework Foundation Framework 请注意 OpenGL Framework 是NOT已链接 但是 设
  • 如何在iframe中隐藏滚动条,但仍然能够滚动

    我的一个页面上有一个 iframe 其中有另一个页面 我想隐藏滚动条 但我找不到任何解决方案 我尝试过overflow hidden 但它不起作用 见下面的代码 CSS代码 iframe overflow hidden 由于您没有指定是否需
  • Pandas 随机样本删除

    我知道DataFrame sample 但是我怎样才能做到这一点并从数据集中删除样本呢 注意 据我所知 这与替换采样无关 例如这里是精华我想要实现的目标 这实际上不起作用 len df 1000 df subset df sample 30
  • mongoDB 中的游标隔离

    首先请原谅我问了一个愚蠢的问题 但我是 mongodb 和学习游标的新手 我有一个问题 为什么我们需要游标隔离 手册说 如果文档发生更改 对文档的干预写入操作可能会导致游标多次返回该文档 我无法理解这一点 如果有人可以提供更多说明或举一些例
  • 使用 pandas 插值将每月值转换为每日值

    我有 1000 列的 12 个平均每月值 我想使用 pandas 将数据转换为每日数据 我尝试过使用插但我得到了从 31 01 1991 到 31 12 1991 的每日值 这并不涵盖全年 一月份的值没有得到 我用了日期范围用于我的数据框的
  • R 编程:创建堆叠条形图,每个堆叠条形具有可变颜色

    我正在尝试创建一个堆叠条形图 每个堆叠条形图中的颜色可变 也就是说 一个条形图在红色上方显示蓝色 下一个条形图在紫色上方显示红色 等等 我还想保留堆叠图表的功能 十分感谢大家 Adam 下图 使用上面的代码创建 显示了主要汽车制造商生产的汽
  • 使用 Entity Framework 6 强制两列之一不为 NULL

    我有一个如下表 Table tblStore public class Store Key DatabaseGenerated DatabaseGeneratedOption Identity public Guid Id get set
  • 如何获取 ndarray 的 x 和 y 维度 - Numpy / Python

    我想知道是否可以分别获取 ndarray 的 x 和 y 维度 我知道我可以使用ndarray shape获取表示维度的元组 但如何在 x 和 y 信息中分离它 先感谢您 您可以使用元组拆包 y x a shape
  • 将 SAML 令牌与 Web 服务 (wsdl) 结合使用

    我已从提供商处获得了 wsdl 文件和 pfx 我致电 IdP 并获取 SAML 令牌 现在我需要将该令牌传递给 WebService 如何使用 SAML 令牌来处理 WebService 我正在使用 NET 4 5 在以下两篇文章的帮助下
  • 不会将字符串转换为十进制 C#(输入字符串的格式不正确。)

    Visual Studio 不会将我的字符串转换为十进制 错误 输入字符串的格式不正确 Code string test 123 95 decimal test1 decimal parse test string being an int
  • Java 支持多行字符串吗?

    来自 Perl 我肯定缺少在源代码中创建多行字符串的 here document 方法 string lt lt EOF create a three line string text text text EOF 在 Java 中 当我从头
  • 使用 opencv warpPerspective() 生成道路的自上而下视图

    我正在尝试实施逆透视映射计算与道路上另一辆车的距离 我知道在应用该函数之前我需要生成一个包含源点和目标点的变换矩阵warpPerspective 但我不知道如何计算目的地点 我在这个论坛和其他网站中搜索 但无法将第一张图片转换为第二张图片
  • 从 Get-ChildItem -Path 返回对象数组

    从 powershell 开始 ls R txt将按目录递归列出文件 或者更好 PS gt Get ChildItem Path C Test Name logs anotherfile txt Command txt CreateTest