在 PowerShell 中复制文件并将日期添加到其名称

Copying a file and adding the date to its name in PowerShell

为什么这行不通?:

Copy-Item "C:\Logs\VPNLog.txt" "C:\Backup\VPNLog$(Get-Date -UFormat %d-%m-%Y-%R).txt"

错误信息: Copy-Item : The given path's format is not supported.

郑重声明,这有效:

Copy-Item "C:\Logs\VPNLog.txt" "C:\Backup\VPNLog.txt"

这是因为您的格式包含一个冒号 (:),文件名不允许使用该冒号。

您可以使用以下方法获取所有无效文件字符的列表:[System.IO.Path]::GetInvalidFileNameChars()

%R输出的是冒号格式的时间,文件名不能有冒号。要看到这个,只需 运行 get-date -uformat %d-%m-%Y-%R

要获取不带冒号的小时、分钟和秒,您需要使用类似于以下内容的 get-date 命令:

get-date -uformat %d-%m-%Y-%H.%M.%S

您正在使用 %R,根据注释,它在文件名中提供了一个不受支持的 : 字符。在将附加时间戳数据附加到文件名之前,首先取出 %R 或分离日期字符串的格式。

来源:TechNet Get-Date