2016-03-07 4 views
0

У меня есть папка с несколькими подпапками, каждая папка содержит около 50 подпапок, содержащих текстовые файлы. Я хочу переместить файл из одной папки в другую, не открывая каждую подпапку. есть два типа файлов 1. BSEG и 2. BKPFPowershell для перемещения текстовых файлов из одной папки в другую

Я хочу, чтобы переместить файлы, начинающиеся с BSEG в папке под названием BSEG и файлы, начиная с BKPF в папке BKPF

код Я используя для BSEG файлов

Move-Item D:\Company\SAP\JAN\"BSEG"*.txt D:\Company\BSEG 

этот код работает, но я должен писать код обновления для каждой вложенной папки, я хочу помочь изменить этот код, чтобы он ищет все вложенные папки

ответ

0

Powershell использует -recurse для достижения этой цели , Сделайте это выстрелом. Компонент -recurse указывает, что он попадает в каждую подпапку, а затем выводит результат на элемент перемещения. Стоит отметить, что это не будет захватывать структуру папок, просто файлы, и она также потерпит неудачу, если вы попытаетесь перенести файлы с одинаковыми именами.

Get-ChildItem D:\Company\SAP\JAN\"BSEG"*.txt -recurse | Move-Item -Destination D:\Company\BSEG 
+0

Благодарим за помощь :) – mb1987

0

dfundako имеет половину его. Move-Item не войдет в подпапки. Использование Get-ChildItem с помощью переключателя -Recurse поможет вам получить файлы, которые вы хотите переместить.

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

foreach($fileType in $fileTypes){ 
    Get-ChildItem -Path D:\Company\SAP\JAN\ -Filter "$fileType*.txt" -Recurse | 
     Move-Item -Destination D:\Company\$fileType 
} 
+0

Благодарим за помощь :) – mb1987

Смежные вопросы