Powershell-尝试在文件夹副本的末尾添加日期时出现错误消息



我是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输出。

如果路径中有任何空格,则将其视为不同的参数。

为了避免这种情况,您可以使用引号来封装字符串,但不能执行函数,如我所用的括号和串联字符串是另一种方法。

最新更新