0

いくつかのファイルの拡張子を .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

これらのファイルを上書きするにはどうすればよいですか?

4

1 に答える 1

0
$SourceFile = "X:\Source\Folder\*.cap"
$Dest = "X:\Destination\Folder"
Get-ChildItem $SourceFile | Foreach {Copy-item $_ "$Dest\$($_.Name -replace ".cap", ".zip")" -Force}

望ましい効果が得られるはずです。

問題は、ファイルが移動またはコピーされた後、別のファイルが新しい名前で存在している間にファイルの名前を変更したいという事実にあります。これは起こり得ません。そのエラーが発生します。上記が行うことは、転送中にファイルの名前を変更することです。これは、宛先フォルダーに書き込まれるファイルが新しい拡張子を持つファイルであることを意味するため、ここから既存のものを上書きできます。

于 2015-02-12T09:45:05.560 に答える