使用"删除项目。"在文件名中不起作用

时间:2015-02-26 15:57:00

标签: powershell filenames

我的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:是一个网络路径。

THX

1 个答案:

答案 0 :(得分:0)

在Windows中不允许使用点结束文件夹名称:

  

不要使用空格或句点结束文件或目录名称。虽然底层文件系统可能支持此类名称,但Windows shell和用户界面却不支持。但是,可以将句点指定为名称的第一个字符。例如," .temp"。

https://msdn.microsoft.com/en-us/library/aa365247.aspx