【发布时间】:2015-04-29 02:20:16
【问题描述】:
我的 Powershell 脚本检查文件是否存在。如果存在,则删除现有文件。然后保存一个同名的新文件。 当我的文件名(和路径)中没有点(“。”)时,它可以完美运行。我认为 -LiteralPath 将是解决方案,但它不起作用,不知道为什么。 Test-Path 似乎有效,但 Remove-Item 无效。
$xlsFile = "R:\Temp\37 Place i.Bay.\ComeOn 37 Place i.Bay. user_finance.xlsx"
if (Test-Path -LiteralPath $xlsFile)
{
try {
Write-Host "TestPath positiv, try to delete"
Remove-Item -LiteralPath $xlsFile -ErrorAction "Stop"
} catch {
Write-Warning $_.Exception.Message
}
try {
$xlsObj.ActiveWorkbook.SaveAs($xlsFile);
} catch {
Write-Warning $_.Exception.Message
}
}
else
{
Write-Host "TestPath negativ"
$xlsObj.ActiveWorkbook.SaveAs($xlsFile);
};
Powershell 2.0, R: 是网络路径。
谢谢
【问题讨论】:
-
我还没有找到支持它的文档(我可能没有时间),但我怀疑问题是试图让文件夹名称以最后一个字符为点。
-
Windows GUI 不允许您创建带有尾随句点的文件夹,因此您可能会遇到一些问题
-
找到了。 “不要以空格或句点结束文件或目录名称。虽然底层文件系统可能支持此类名称,但 Windows shell 和用户界面不支持。但是,可以将句点指定为第一个字符名称。例如,“.temp”。 - msdn.microsoft.com/en-us/library/aa365247.aspx
标签: powershell filenames