尝试创建一个简单的备份PowerShell脚本

时间:2018-01-26 18:24:05

标签: powershell backup

尝试创建一个简单的备份脚本,但每次运行下面的脚本时,都会收到以下错误:

Copy-Item : Cannot overwrite the item C:\Users\Jacob\desktop\file1.txt with 
itself.
At C:\Users\Jacob\desktop\test.ps1:5 char:1
+ Copy-Item $file $file.backup
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : WriteError: (C:\Users\Jacob\desktop\file1.txt:String) [Copy-Item], IOException
    + FullyQualifiedErrorId : CopyError,Microsoft.PowerShell.Commands.CopyItemCommand

简单的脚本:

Param(
    [Parameter(Mandatory=$true)]
    [string]$file
)

Copy-Item $file $file.backup
"$file has been backed up."

1 个答案:

答案 0 :(得分:0)

$file.backup尝试扩展字符串变量backup上的(不存在的)属性$file。这会返回一个空结果,因此您有效地运行Copy-Item $file(没有目的地),这会导致您观察到的错误。

要避免此问题,您可以执行以下操作:

  • 将目标定义为字符串:

    Copy-Item $file "${file}.backup"
    
  • 通过字符串连接附加扩展名:

    Copy-Item $file ($file + '.backup')
    
  • 使用格式运算符:

    Copy-Item $file ('{0}.backup' -f $file)