我想将几个文件的扩展名从.cap更改为.zip。我在powershell中写了以下代码:
Copy-Item $sourceFileLocation\*.cap $Temp -Force
但是如果已经存在扩展名为.zip的相同文件呢? 它在控制台上出现以下错误:
Rename-Item : Cannot create a file when that file already exists.
At E:\ExtractHashId.ps1:32 char:23
+ dir $Temp\*.cap | Rename-Item -NewName{$_.Name -replace ".cap", ".zip"}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError: (C:\Users\v-kamo...News_Locals.cap:String) [Rename-Item], IOException
+ FullyQualifiedErrorId : RenameItemIOError,Microsoft.PowerShell.Commands.RenameItemCommand
那么我需要做些什么才能覆盖这些文件?
答案 0 :(得分:0)
$SourceFile = "X:\Source\Folder\*.cap"
$Dest = "X:\Destination\Folder"
Get-ChildItem $SourceFile | Foreach {Copy-item $_ "$Dest\$($_.Name -replace ".cap", ".zip")" -Force}
应该给你想要的效果。
问题在于,您希望在文件移动或复制后重命名文件,而另一个文件存在新名称。这不可能发生,你会得到那个错误。以上操作是在传输过程中重命名文件。这意味着写入目标文件夹的文件是具有新扩展名的文件,因此您可以在此处覆盖现有文件。