Powershell - 尝试将日期添加到文件夹副本末尾的错误消息

Powershell - Error message for trying to add a date to the end of a copy of a folder

我是 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

我稍微调整了你的获取日期,因为我不确定获取日期的 -format 的输出。

如果路径中有任何空格,那么这将被视为不同的参数。

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