Как скопировать папку с подпапками и элементами из местоположения скриптов? - PullRequest
0 голосов
/ 21 мая 2018

Я пытаюсь создать скрипт, который копирует папку с подпапками из директории-источника скрипта в C:\Tools.

Папка создается нормально, но файлы не копируютсяи я не получаю сообщений об ошибках.

Что я делаю не так?

Фрагмент кода ниже (PowerShell v2.0):

$from = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent
$to =  C:\Tools\
New-Item -ItemType Directory -Path C:\Tools
New-Item -Force $to
Copy-Item "$from\Tools" $to -Recurse

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

Примеры в документации всегда стоит посмотреть, для Copy-Item - пример 3 такой же, как вы хотите сделать:

Пример 3: Скопироватьсодержимое каталога в другой каталог и создайте каталог назначения, если он не существует

PS C:\> Copy-Item C:\Logfiles -Destination C:\Drawings\Logs -Recurse

Эта команда копирует содержимое каталога C: \ Logfiles в C: \ Drawings\ Каталог журналов.Он создает подкаталог \ Logs, если он еще не существует.

Поскольку Copy-Item создаст папку назначения для вас, вам не нужно сначала использовать New-Item:

$from = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent
$to =  "C:\Tools"

Copy-Item "$from\Tools" -Destination $to -Recurse
0 голосов
/ 21 мая 2018

Это работает для меня:

New-Item -ItemType directory -Path "C:\Tools" -Force | Out-Null

Copy-Item -Path "$(Split-Path -Path $MyInvocation.MyCommand.Definition -Parent)\Tools\*" `
          -Destination "C:\Tools\" `
          -Recurse 

Предполагается, что структура папок выглядит следующим образом:

Root
  |
  |- CopyScript.ps1
  |- Tools
       |- File1.txt
       |- File2.txt
       ...
       |- SubFolder1
       |- Subfolder2
       ...

Приведенный выше фрагмент создаст следующее:

C:\tools
   |- File1.txt
   |- File2.txt
   ...
   |- SubFolder1
   |- Subfolder2
   ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...