2016-03-09 1 views
0

У меня есть сценарий, который будет перемещать файлы из одного места в другое, если у него есть определенное расширение файла.Переместить файл в пункт назначения, если имя файла содержит строку

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

Есть ли способ, чтобы изменить этот сценарий так, он ищет .OLD файлы со словом «АМА», содержащегося в имени файла? И перемещает файлы в путь назначения?

У меня был хороший поиск, но все, что я могу найти, это сценарии, которые отправляют файл в пункт назначения на основе имени файла, а не если оно содержит определенное слово.

Большое спасибо,

ответ

0

Добавить условие -like "*AMA*"

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

Edit: вы могли бы объединить два where условия, чтобы иметь -like "*AMA*.old"

+0

Отличное спасибо! – JMar

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"