'Я пытаюсь скопировать несколько файлов из нескольких папок в другую папку.В папках есть часть имени файла.
Например - я хочу скопировать все файлы с именем «Телефон» или «ячейка» и серийный номер как часть имени файла.Каждая подпапка имеет серийный номер как часть имени папки.
C:\shared\112\products\112.phone blah blah.txt
C:\shared\112\products\112.my cell.txt
C:\shared\113\products\113.ugly phone.txt
C:\shared\113\products\113.the cell.txt
C:\shared\114\products\114.pretty phone.txt
C:\shared\115\products\115.phone lazy.txt
C:\shared\115\products\115.celly cell.txt
Проблема в том, что есть 20 000 серийных номеров, поэтому я хочу создать список серийных номеров и вытащить файл на основенабор серийного номера.Вот мой сценарий, но он ничего не тянет. '
$FirstSearchlist = @(“112”, “113”)
$SecondSearchlist = @("phone","cell")
$dirArray = @("c:\Shared\")
$NotFound = "Not Found"
cls
function Recurse([string]$path) {
$fc = new-object -com scripting.filesystemobject
$folder = $fc.getfolder($path)
foreach ($i in $folder.files) {
[string]$FullPath = $i.Path
[string]$FileName = $i.Name
foreach($first in $FirstSearchlist) {
if ($filename.ToUpper().Contains($first.ToUpper())) {
foreach($second in $SecondSearchlist) {
if ($filename.ToUpper().Contains($second.ToUpper())) {
Write-Host $Fullpath
Copy-Item $Fullpath -Destination "C:\Shared\Phones" -Recurse
}
}
}
}
}
foreach ($i in $folder.subfolders) {
Recurse($i.path)
}
}
function main() {
foreach ($i in $FirstSearchlist){
$NewFolder = $dirArray + $i
foreach($SearchPath in $NewFolder) {
Recurse $SearchPath
}
}
}
main