【问题标题】:PowerShell Copy-Item what I'm doing wrong?PowerShell Copy-Item 我做错了什么?
【发布时间】:2009-11-12 19:59:41
【问题描述】:

给定目录结构:

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

有什么问题?

【问题讨论】:

  • 哈哈。才发现问题。这是一个错字“BackupDirectoy” - 忘记了一个“r”。该死。我在这个问题上花了 2 个小时
  • 您可以通过在脚本开头使用 Set-StrictMode cmdlet 来避免此类问题。它不会让你使用任何你没有声明的变量(它会捕捉到这个错误)。

标签: powershell copy-item


【解决方案1】:
$BackupDirectoy       = "..\Backup"
$CodeDirectory        = "..\Code"

这些路径将与您运行脚本时提示符所在的当前目录相关。我怀疑您不希望这样,但希望相对于 script 所在的位置运行。如果是这种情况,试试这个:

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

【讨论】:

  • 实际上我希望路径相对于脚本位置。 PowerShell 中的当前目录设置为 x\Script
猜你喜欢
  • 2010-09-12
  • 1970-01-01
  • 1970-01-01
  • 2011-06-01
  • 1970-01-01
  • 2018-12-31
  • 2021-04-14
  • 2021-04-19
  • 2017-03-13
相关资源
最近更新 更多