尝试创建一个简单的备份脚本,但每次运行下面的脚本时,都会收到以下错误:
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."
答案 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)