在PowerShell中复制文件并在文件名上添加日期

3
为什么这个无法正常工作?
Copy-Item "C:\Logs\VPNLog.txt" "C:\Backup\VPNLog$(Get-Date -UFormat %d-%m-%Y-%R).txt"

错误信息: Copy-Item:给定路径的格式不受支持。 记录一下,这是有效的:
Copy-Item "C:\Logs\VPNLog.txt" "C:\Backup\VPNLog.txt"
3个回答

7

%R输出的是带有冒号格式化的时间,而文件名中不能有冒号。要查看这一点,只需运行get-date -uformat %d-%m-%Y-%R

要在没有冒号的情况下获取小时、分钟和秒数,您需要使用类似于以下命令的get-date命令:

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

你可能指的是分钟:get-date -uformat %d-%m-%Y-%H.%M.%S - Escay

0

这是因为你的格式包含了一个不允许用于文件名的冒号(:)。

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


0

你正在使用%R,根据注释,它在文件名中提供了一个:字符,但这是不被支持的。在将日期字符串附加到文件名之前,去掉%R或先单独处理日期字符串的格式。

来源:TechNet关于Get-Date


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接