2016-04-28 9 views
2

Hier ist meine für SchleifeFehler, wenn ich die Dateien in einer for-Schleife erzeugt umbenennen möchten in Power

function Generate_bin($input_1, $bin_file_name, $Codes){ 

    $counter=1 
    foreach ($Code in $Codes) 
    { 
     Write-Host "Code = $Code" 
     $input_11 = "$input_1" + "$counter" 
     $pattern = "0x" 
     $New = "" 
     $Code = [regex]::replace($Code, $pattern, "$New") 
     $bin_file_name2 = "$bin_file_name" 
     $bin_file_name2 += "$Code" + ".bin" 
     #This utility generates "out.bin" 
     Invoke-Command -ScriptBlock {.\xyz.exe -i -t "$input_1"} 

     Rename-Item out.bin -NewName $bin_file_name2 
     $counter++ 
    } 

} 

Ich erhalte folgende Fehler

Rename-Item : Cannot create a file when that file already exists. 
At C:\script\myParser_unique.ps1:18 char:7 
+  Rename-Item out.bin -NewName $bin_file_name2 
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : WriteError: (C:\Users\v-ashi...Unified\out.bin:String) [Rename-Item], IOException 
    + FullyQualifiedErrorId : RenameItemIOError,Microsoft.PowerShell.Commands.RenameItemCommand 

Antwort

0

Sie sollten -Force-Parameter auf die hinzufügen Rename-Item, um bestehende Dateien zu überschreiben.

Wenn Ihr Code mehrere gleiche Dateinamen erzeugt, können Sie dem Dateinamen einen Zähler hinzufügen.

+0

danke für die antwort. –

+0

danke für die Antwort. -Force hat nicht für mich gearbeitet. So habe ich folgende Abhilfe Wenn (Test-Path $ bin_file_name) { rm $ bin_file_name } Rename-Item out.bin -newname $ bin_file_name –

+0

Verwenden Sie einfach 'rm -force -ea 0 ' – majkinetor