Скрипт PowerShell не копирует так, как я хочу - PullRequest
0 голосов
/ 17 декабря 2018

В самом начале я должен отметить, что я чертов новичок, потому что не могу посещать занятия в своем классе.

Я хочу создать сценарий PowerShell, который будет копировать все из

C: \ Users \ Robert \ Desktop \ test (много папок)

до

C: \ Users \ Robert \ Desktop \ neu (много папок с точно такими же именами, как указано выше) \ цена

Как абсолютный новичок, я подумал, что будет нормально заменить имя переменной папки на $_Name, потому что это то же самое имя воба, но я, очевидно, ошибаюсь и не знаю почему.Вот моя попытка

Copy-Item "C:\Users\Robert\Desktop\test\$_name\*" -Destination "C:\Users\Robert\Desktop\neu\$_Name\price" -Recurse

Это что-то копирует, но в одном пакете в новой папке в "neu".

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

Спасибо

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Если мое понимание верно:

$src = 'C:\Users\Robert\Desktop\test'
$dst = 'C:\Users\Robert\Desktop\neu\{0}\price'

Get-ChildItem $src -Directory | ForEach-Object {
    Copy-Item -Path "$($_.FullName)\*" -Destination ($dst -f $_.BaseName) -Recurse -Force -WhatIf
}

Удалите -Что, если на самом деле это сделать.

0 голосов
/ 17 декабря 2018

$_ представляет текущий конвейер элемент.я не вижу там конвейера ... [ grin ]

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

$SourceDir = "$env:TEMP\Apps - Copy"
$DestDir = "$env:TEMP\Apps - Copy - Two"

$CI_Params = @{
    LiteralPath = $SourceDir
    Destination = $DestDir
    Force = $True
    Recurse = $True
    }
Copy-Item @CI_Params
...