【问题标题】:backing up certain files in a folder using powershell使用powershell备份文件夹中的某些文件
【发布时间】:2014-01-14 22:55:54
【问题描述】:

我有几个问题。我的文件夹中有某些二进制文件...

F:\program files\application\Client\

我只想复制名称中有特定短语的最新 dll。让我们说“MVCsite”。我知道您可以将Get-ChildItem -Filter 与过滤器参数一起使用,仅获取扩展名为 .dll 的子项,但是有没有办法查找具有特定关键字的特定文件,或者我将不得不逐字复制文件从目录中移出并将其移动到备份文件夹?是否有一个快速而肮脏的命令来做到这一点?如您所知,我是 powershell 新手,但我学得很快。

【问题讨论】:

  • 只有一个关键字,还是可以有多个?
  • 可能不止一个。

标签: powershell


【解决方案1】:

gci -path $path -filter "*.dll" | where {$_.Name -match "Keyword1|Keyword2|etc"}

【讨论】:

  • Get-ChildItem,和你发布的一样:)它也可以用作lsdir
  • "-contains" 不起作用。我冒昧地编辑了您的答案。我希望你不要介意。另外好像可以有多个关键字,所以我也放了。
  • 你能有多个 -filter 参数吗?你能发送一个数组到 -filter 吗?
  • 很遗憾没有,它可能只需要一个[string],而不是一个数组
【解决方案2】:

只需在 -Path 参数中使用通配符:

Copy-Item F:\program files\application\Client\*MVCsite*.dll X:\DestinationDir

这将复制 F:\program files\application\Client\ 中名称包含字符串“MVCsite”且扩展名为“.dll”的所有文件。那是你想要完成的吗?如果不是,请澄清。

【讨论】:

  • 我想从技术上讲,如果我新建了所有要复制的文件,我可以将一个数组放入该 -Path 参数中。
  • 我不明白评论。是的,你可以那样做,但是把这个数组放在一起会很乏味。我认为这个想法是复制所有名称中具有特定扩展名和特定字符串的文件。您是否想说您认为此解决方案需要您单独列出所有文件名?它没有。这一行一次复制了所有个名称中带有“MVCsite”和“.dll”扩展名的文件。
  • 我知道你的意思,我想我有点“大声思考”,我想知道是否有某种权衡,当我可以简单地列出我需要的所有文件时.但你的答案也很好。
猜你喜欢
  • 2021-04-13
  • 2019-12-17
  • 1970-01-01
  • 2020-11-03
  • 2023-04-07
  • 2017-07-20
  • 2019-11-16
  • 2013-02-26
  • 1970-01-01
相关资源
最近更新 更多