PowerShell:选择对象:选择文件的一半

PowerShell:选择对象:选择文件的一半,powershell,Powershell,Windows 10,版本10.0.19042.868 你好, 我有一个PowerShell脚本,用于选择第一个XXX文件并移动到另一个文件夹 Get-ChildItem -File *.txt | Sort-Object Name | Select-Object -First 25000 | Move-Item -Destination C:\txtFilesToProcess\ 但是如何从Get ChildItem中选择一半文件?将Get ChildItem的输出分配给一个变量,以便您提前

Windows 10,版本10.0.19042.868

你好,

我有一个PowerShell脚本,用于选择第一个XXX文件并移动到另一个文件夹

Get-ChildItem -File *.txt | Sort-Object Name | Select-Object -First 25000 | Move-Item -Destination C:\txtFilesToProcess\

但是如何从
Get ChildItem
中选择一半文件?

Get ChildItem
的输出分配给一个变量,以便您提前知道文件的数量

这是公认的解决方案:

$files = Get-ChildItem -File *.txt | Sort-Object Name 
$files | Select-Object -First ($files.Count / 2) | Move-Item -Destination C:\txtFilesToProcess\

使用单个管道的替代方法(更多用于学术目的,因为它使代码更难理解):

  • 在继续执行下一个管道命令之前,
    Get ChildItem
    命令周围的括号(aka)收集数组中该命令的所有输出
  • 此外,还需要使用,以防止枚举数组元素(有关详细信息,请参阅)。它创建了一个数组,其中包含来自
    Get ChildItem
    的输出数组作为单个元素
  • 现在,
    ForEach对象
    对整个
    Get ChildItem
    输出数组进行操作,因此我们可以使用
    $\uuuu.Count
    获取文件总数

Get ChildItem
的输出分配给一个变量,以便您提前知道文件数

这是公认的解决方案:

$files = Get-ChildItem -File *.txt | Sort-Object Name 
$files | Select-Object -First ($files.Count / 2) | Move-Item -Destination C:\txtFilesToProcess\

使用单个管道的替代方法(更多用于学术目的,因为它使代码更难理解):

  • 在继续执行下一个管道命令之前,
    Get ChildItem
    命令周围的括号(aka)收集数组中该命令的所有输出
  • 此外,还需要使用,以防止枚举数组元素(有关详细信息,请参阅)。它创建了一个数组,其中包含来自
    Get ChildItem
    的输出数组作为单个元素
  • 现在,
    ForEach对象
    对整个
    Get ChildItem
    输出数组进行操作,因此我们可以使用
    $\uuuu.Count
    获取文件总数

Get ChildItem-File*.txt | Sort Object Name | Select Object-First(Get ChildItem-File*.txt)。Count/2 | Move Item-Destination C:\txtFilesToProcess\@vivekkumarsing我会避免这样做,因为您有两个
Get ChildItem
。最好使用variableGet-ChildItem-File*.txt |排序对象名|选择对象-优先(Get-ChildItem-File*.txt)。计数/2 |移动项目-目的地C:\txtFilesToProcess\@vivekkumarsing我会避免这样做,因为您有双
Get-ChildItem
。更好地使用变量