windows 使用PowerShell仅复制不包含字符串的文件夹(及其内容

h7appiyu  于 2022-12-24  发布在  Windows
关注(0)|答案(1)|浏览(203)

我有一个很长的文件夹列表。大多数文件夹遵循"名称_#名称"格式。我有一些不遵循该结构。我想移动文件夹名称中没有""的所有文件夹(及其子文件夹/文件)。
例如:测试
#12352驼鹿_#4532马_#84462奶牛24鱼3
搬家:牛24鱼3
我认为Move files when they contain a specific word?可以修改,使其工作...只是不知道如何。我习惯于只使用GUI,这是我第一次使用PowerShell
当我尝试在那个链接中使用那个代码时,它不适合我的情况

8yparm6h

8yparm6h1#

您要做的只是在移动任何文件之前过滤列表
因此,您可以使用以下命令来拾取所有您想要的文件

$Files = Get-childItem -Path $Path -File

我最喜欢的方法是将变量通过管道传输到Where-Object中,然后处理各个属性和匹配类型。由于您不想包含_,我们可以使用-notmatch "_"来排除这些值

$Files = Get-ChildItem -Path $Path -File | Where-object{$_.Name -notmatch "_"}

最后,您可以移动文件

$Files | move-item -path $_.FullName -Destination $Destination

或者是一句俏皮话

Get-ChildItem -Path $Path -File | Where-object{$_.Name -notmatch "_"} | move-item -path $_.FullName -Destination $Destination
  • 请注意,我还没有真正测试过这段代码,所以在运行之前请自己测试一下

相关问题