我是Powershell的新手,正在尝试查看是否可以从测试文件夹中复制文件夹,然后将其放在备份文件夹中,并将文件夹重命名为完成日期。
$sourceFile = "C:Test1"
$destination = "C:Backup"
copy-item $sourceFile -destination $destination .server-backup-$(Get-Date -format "yyyy_MM_dd_hh_mm_ss") -Recurse
然而,我一直收到一个错误,说找不到接受论点的人。
Copy-Item : A positional parameter cannot be found that accepts argument '.server-backup-2022_01_20_09_32_27'.
At line:5 char:2
+ copy-item $sourceFile -destination $destination .server-backup-$(Ge ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Copy-Item], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.CopyItemCommand
有没有更好的方法来解决这个问题,或者这个错误可以很容易地修复?
您需要连接目标字符串:
$sourceFile = "C:Test1"
$destination = "C:Backup"
copy-item $sourceFile -destination ($destination + "server-backup-" + (Get-Date).ToString("yyyy_MM_dd_hh_mm_ss")) -Recurse
我稍微调整了一下你的get日期,因为我不确定get日期的-format输出。
如果路径中有任何空格,则将其视为不同的参数。
为了避免这种情况,您可以使用引号来封装字符串,但不能执行函数,如我所用的括号和串联字符串是另一种方法。