2016-06-25 5 views
2

複数の拡張子を持つファイルがあるフォルダがあり、その名前を "thisname"に変更する必要があります。
の名前の変更は、次のPowershell:リネームアイテムのインクリメントが存在する場合(複数の拡張子)

test.txt -> thisname.txt 
test1.txt -> thisname1.txt 
bascic.vbs -> thisname.vbs 
basic1.vbs -> thisname1.vbs 

次は私がこれまで試してみました何であるように起こる必要があります。

Get-ChildItem -Path $subfolder_path\*.* -exclude *.jpg, *.pdf | 
    rename-item -newname { -join($jxl) + $_.extension } 

コードのこの部分は私がすべての二枚舌拡張子に増分を作成する必要がある唯一の1つのファイルの名前を変更。

答えて

1

私だ、私は完全にあなたのニーズを理解したが、これはあなたが

+0

'for'ループ:) – sodawillow

+0

のTHX終了条件の賢い利用 - との素敵なフォーマット – DAXaholic

+0

ない私は、エラーまし秒に十分な、この名前の変更はまだ最初のファイルのみのためのTHX: 名前の変更、アイテム:作成できませんがそのファイルがすでに存在する場合はファイルです。 D:\ script \ filter.ps1:44 char:16 + Rename-Item <<<< -NewName { + CategoryInfo:WriteError:(D:\ script \ test \ 1 \ readme_first.txt:String)名前の変更]、IOException + FullyQualifiedErrorId:RenameItemIOError、Microsoft.PowerShell.Commands.RenameItemCommand –

0

を設定する必要が希望の動作についてのいくつかのより多くの情報を共有してください解決しない場合、これは

Get-ChildItem -Path $subfolder_path\*.* -Exclude *.jpg, *.pdf | 
    Rename-Item -NewName { 
     $newName = "thisname" + $_.Extension 
     for($i = 0; Test-Path $newName; ++$i) { 
      $newName = "thisname" + $i + $_.Extension 
     } 
     $newName 
    } 

を試してみる場合は100%確実ではありません最初の場所。

Set-Location -Path <path to files> 

これ以降すべてが正しく行われます。

関連する問題