不支持复制项目失败给定路径格式
Copy-Item Failing Given Paths format is not supported
这让我发疯。我假设我遗漏了一些愚蠢的东西,但我已经尝试了大约 10 种不同的格式,但没有任何效果。
这是我的代码 运行:
$today=$(Get-Date -Format o)
$destfile = "C:\SEA-FTP\toFTP\SEAInfo-$today.csv"
$srcfile = "C:\SEA-FTP\temp\QueryCSVTempMstr.csv"
Copy-Item $srcfile -Destination $destfile
这是错误信息:
Copy-Item : The given path's format is not supported.
At C:\SEA-FTP\BCP_SQL_Script-v1.0.ps1:53 char:10
+ Copy-Item <<<< $srcfile -Destination $destfile
+ CategoryInfo : NotSpecified: (:) [Copy-Item], NotSupportedException
+ FullyQualifiedErrorId : System.NotSupportedException,Microsoft.PowerShell.Commands.CopyItemCommand
我知道在 Google 搜索中有一百万个问题,但看起来我正在做他们正在做的事情。对格式有什么想法吗?
您不能在 Windows 上的文件名中添加冒号:
您的日期格式是 2016-08-22T22:15:25.3693163+01:00
,因此它不能作为文件名的一部分。
修复:没有修复指定的名称;你可以 -replace ':', '-'
,任何对你有意义的字符。
Windows 不允许在文件名中使用冒号 (:)。
Get-Date -Format o
为您提供输出:“2016-08-23T07:54:19.4530323+02:00” 其中包含冒号。
如果您想保留名称原样,可以将冒号“:”替换为破折号。在你的例子中:
$Today = Get-Date -Format o
$SrcFileName = "C:\temp\SEAInfo-$($Today.Replace(":","-")).csv"
但如果是我的文件,我会更改时间戳格式。
文件名“SEAInfo-2016-08-23T08-33-36.3268865+02-00.csv”让我很难理解这个文件的创建时间..
根据您需要的时间戳的详细程度,您可以使用:
$Today = Get-Date -Format "yyyyMMdd-HHMMss.ff"
$SrcFileName = "C:\temp\SEAInfo$Today.csv"
或者只是日期就足够了?
$Today = Get-Date -Format "yyyy-MM-dd"
$SrcFileName = "C:\temp\SEAInfo-$Today.csv"
我的眼睛会喜欢这样的文件名:“SEAInfo2016-08-23.csv”
您应该尝试看看您觉得容易阅读的内容。
在这里你会发现很多格式化日期和时间的方法的例子:
https://technet.microsoft.com/en-us/library/ee692801.aspx
这让我发疯。我假设我遗漏了一些愚蠢的东西,但我已经尝试了大约 10 种不同的格式,但没有任何效果。
这是我的代码 运行:
$today=$(Get-Date -Format o)
$destfile = "C:\SEA-FTP\toFTP\SEAInfo-$today.csv"
$srcfile = "C:\SEA-FTP\temp\QueryCSVTempMstr.csv"
Copy-Item $srcfile -Destination $destfile
这是错误信息:
Copy-Item : The given path's format is not supported.
At C:\SEA-FTP\BCP_SQL_Script-v1.0.ps1:53 char:10
+ Copy-Item <<<< $srcfile -Destination $destfile
+ CategoryInfo : NotSpecified: (:) [Copy-Item], NotSupportedException
+ FullyQualifiedErrorId : System.NotSupportedException,Microsoft.PowerShell.Commands.CopyItemCommand
我知道在 Google 搜索中有一百万个问题,但看起来我正在做他们正在做的事情。对格式有什么想法吗?
您不能在 Windows 上的文件名中添加冒号:
您的日期格式是 2016-08-22T22:15:25.3693163+01:00
,因此它不能作为文件名的一部分。
修复:没有修复指定的名称;你可以 -replace ':', '-'
,任何对你有意义的字符。
Windows 不允许在文件名中使用冒号 (:)。
Get-Date -Format o
为您提供输出:“2016-08-23T07:54:19.4530323+02:00” 其中包含冒号。
如果您想保留名称原样,可以将冒号“:”替换为破折号。在你的例子中:
$Today = Get-Date -Format o
$SrcFileName = "C:\temp\SEAInfo-$($Today.Replace(":","-")).csv"
但如果是我的文件,我会更改时间戳格式。 文件名“SEAInfo-2016-08-23T08-33-36.3268865+02-00.csv”让我很难理解这个文件的创建时间..
根据您需要的时间戳的详细程度,您可以使用:
$Today = Get-Date -Format "yyyyMMdd-HHMMss.ff"
$SrcFileName = "C:\temp\SEAInfo$Today.csv"
或者只是日期就足够了?
$Today = Get-Date -Format "yyyy-MM-dd"
$SrcFileName = "C:\temp\SEAInfo-$Today.csv"
我的眼睛会喜欢这样的文件名:“SEAInfo2016-08-23.csv”
您应该尝试看看您觉得容易阅读的内容。 在这里你会发现很多格式化日期和时间的方法的例子: https://technet.microsoft.com/en-us/library/ee692801.aspx