在 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
为什么这行不通?:
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