Как скопировать файлы из нескольких папок в одну общую папку, используя определенный список файлов в текстовом файле - PullRequest
0 голосов
/ 24 октября 2019

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

Я подтвердил, что могу скопировать список файлов из одной папки в другую с помощью команды get-content

get-content pwrshelltest1.txt | foreach-object { copy-item -path $_ -destination "c:\testpshll\"}

Я получаю ошибки, когда помещаю команду -recurse в мою строку независимо от того,где я его размещаю.

1 Ответ

0 голосов
/ 26 октября 2019

Что касается того, что вы прокомментировали, это может сделать то, что вы хотите:

$searchRoot  = 'D:\'            #'# the rootpath on the file server to look for the files
$destination = 'C:\testpshll'
$fileNames   = Get-Content pwrshelltest1.txt

Get-ChildItem -Path $searchRoot -File -Recurse | 
    Where-Object { $_.DirectoryName -ne $destination -and $fileNames -contains $_.Name } | 
    Copy-Item -Destination $destination -WhatIf

Снимите переключатель -WhatIf, как только вы будете удовлетворены информацией, отображаемой в консоли

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...