如果filename包含string,则将文件移动到目标

时间:2016-03-09 13:08:17

标签: powershell move

我有一个脚本,如果文件有特定的文件扩展名,它会将文件从一个地方移动到另一个地方。

get-childitem -Recurse -path "S:\Vecta\Test\" | where {($_.extension -eq '.old')} | move-item -Destination "S:\Vecta\Archive"

是否有办法修改此脚本,以便查找.old文件,其中包含" AMA"包含在文件名中?并将文件移动到目标路径?

我有一个很好的搜索,但我能找到的是根据文件名将文件发送到目的地的脚本,而不是它包含特定的单词。

非常感谢,

2 个答案:

答案 0 :(得分:1)

添加条件-like "*AMA*"

get-childitem -Recurse -path "S:\Vecta\Test\" | where {($_.extension -eq '.old' -and $_ -like '*AMA*')} | move-item -Destination "S:\Vecta\Archive"

修改:您可以将两个where条件合并为-like "*AMA*.old"

答案 1 :(得分:1)

如果它不应该区分大小写,请使用它:

get-childitem -Recurse -path "S:\Vecta\Test\" -filter '*AMA*.old' | move-item -Destination "S:\Vecta\Archive"

增强版将是:

$name = 'ama'
get-childitem -Recurse -path "S:\Vecta\Test\" -filter "*$name*.old" | move-item -Destination "S:\Vecta\Archive"