首页 > 解决方案 > Get-ChildItem 但没有文件夹(完成此部分)并且只有某些文件类型

问题描述

我正在尝试获取一个 powershell 脚本,该脚本从一个文件夹(及其子文件夹)中移动所有文件并将它们全部放在另一个文件夹中。到目前为止,我已经让它工作正常,但我也希望它只移动特定的文件类型(.mp3)。

*这是我第一次玩 powershell,所以对我来说有点 ahhh :D)

我试过像

-and (
$_.extension -eq ".mp3" )

在 Where-Object 下,这会导致它完全按照以前的方式执行 - 它正在复制其他非 .mp3 文件。

-include "*.JPG"-Recurse顶部之前。powershell 终端打开,但屏幕上没有弹出任何内容,并立即关闭。

这就是我目前的工作:

Get-ChildItem "E:\Downloads\*" -Recurse |
  Where-Object { 
  $_.PSIsContainer -eq $true

  } |
  Foreach-Object { robocopy $_.FullName "E:\Music\Compressed" }

标签: powershell

解决方案


您需要做的就是:

Get-ChildItem "E:\Downloads" -Recurse -File -Filter "*.mp3" | foreach { copy $_.FullName "E:\Music\Compressed" }

稍微解释一下:

  • -File这告诉它只返回文件
  • -Filter "*.mp3"这告诉它只抓取 .mp3 文件
  • copy很好,不需要robocopy

推荐阅读