2017-03-28 6 views
0

このパターンに従う画像は何千もあります。 1は主な画像です。これは選択する必要がないため、問題の画像です。 2 & 3名の変更名前を変更する画像

1) 6-100-DS.tif - Renamed to 6-100-DS-main.tif 
2) 6-100-DS_a.tif - Renamed to 6-100-DS-alt01.tif 
3) 6-100-DS_b.tif - Renamed to 6-100-DS-alt02.tif 

は十分に簡単です:

Dir | Rename-Item –NewName { $_.name –replace "_a","-alt01" } 
Dir | Rename-Item –NewName { $_.name –replace "_b","-alt02" } 

私は自分の質問に答えたかもしれません。私はすべての画像の名前を "-main.tif"に変更してからalt画像の名前を変更するセレクタにその画像を含めることができます。

"_a-main.tif", "_b-main.tif" 

これをより効率的に行う方法を知っている人はいますか?

+0

私はDirを試しました|名前の変更 - アイテム-NewName {$ _。name -replace "。"、 " - main" }それはエラーだったので、本当に必要なのは、ファイル名の最後を見つけ、 ".tif"の前に "-main"を追加することです。 –

+0

"DS"は実際にはすべての画像名の一部ではありません。すべての画像に接尾辞を付けたい –

+0

1)6-100-DS.tif - 6-100-DS-main.tifに改名 2)6-100-DS_a.tif - 6-100-DS_a-main.tifに改名 3)6-100 -DS_b.tif - 6-100-DS_b-main.tifに改名 –

答えて

0

これが動作するかどうか、私に教えてください:

私が行っていることは、各タスクのための関数を作成しているが、我々は一つの関数にそれをすべて置くこともできますが、私はこのように説明するのは簡単だろうと思いました。

我々はDS.TIFというディレクトリにあるすべてのもの、DS_A.tif、またはDS_B.tifをつかむためにGet-ChildItemコマンドレットを使用します。これが完了すると、それらのルールに対するフォーラムのファイルのリストが取得されます。今すぐ名前を変更すると簡単ですが、6-100-DSを同じにしておきます。

$Dir="F:\Test\Images" 
Function Main{ 
$Files=Get-ChildItem $Dir -Recurse | Where-Object {$_.name -like "*DS.TIF"} 
$Files | Rename-Item –NewName { $_.name –replace "DS","DS-main" } 
} 

Function alt01{ 
$Files=Get-ChildItem $Dir -Recurse | Where-Object {$_.name -like "*DS_a.TIF"} 
$Files | Rename-Item –NewName { $_.name –replace "_a","-alt01" } 
} 

Function alt02{ 
$Files=Get-ChildItem $Dir -Recurse | Where-Object {$_.name -like "*DS_b.TIF"} 
$Files | Rename-Item –NewName { $_.name –replace "_b","-alt02" } 
} 
Main 
alt01 
alt02 
+0

質問:自分のスクリプトを実行しているときに、コマンドラインで一度に1行ずつ実行しています。私はこれを試していないだけですが、これらの関数がファイルとして実行されているように見えますか?あれは正しいですか?または、このスクリプトはコマンドラインにコピーされていますか? 解決策は十分です。 DSはセレクタとして使用できません。それはスキューの一部です。 –

+0

{$ _。name -replace '(?<!_ * *)\。tif'、 '-main.tif'} これはアンダースコアを持たない画像を選択するという、本当に素晴らしい仕事です。本質的に、全ての主画像を選択する。 –

+0

関数は変数と同じです。変数を呼び出す代わりに、スクリプトのセクションを呼び出しています。関数が実行されると、PowerShellウィンドウを閉じるまで、関数はPowerShellプロファイルに格納されます。それからあなたはいつでもそれを呼び出すことができます。 RegExの方法で動作します。 DS.tifがすべての画像で使用されない場合RegExオプションを使用できます。私はあなた自身の質問に答えたと思います。 –

関連する問題