PowerShell Copy-Item, что я делаю не так? - PullRequest
2 голосов
/ 12 ноября 2009

Учитывая структуру dir:

x\Code
x\Script\Backup.ps1

Backup.ps1 содержит:

$BackupDirectoy       = "..\Backup"
$CodeDirectory        = "..\Code"

function BackupCurrentVersion()
{
  New-Item $BackupDirectoy -type directory -force
  Copy-Item $CodeDirectory -destination $BackupDirectory -recurse
}

BackupCurrentVersion

Я делаю что-то не так, потому что код копируется в x \ Script \ Code вместо x \ Backup \ Code

В чем проблема?

1 Ответ

5 голосов
/ 12 ноября 2009
$BackupDirectoy       = "..\Backup"
$CodeDirectory        = "..\Code"

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

$ScriptDir      = Split-Path $MyInvocation.MyCommand.Path -Parent
$BackupDirectoy = "$ScriptDir\..\Backup"
$CodeDirectory  = "$ScriptDir\..\Code"
...