2016-05-11 16 views
0

Get-ChildItem "C:¥temp¥test¥testsub" -Recurse -Include * .wav | %{$ _ -NewName( "$ .Directory.Name.Substring(4)" + "($ .NAME).WAV") - アイテムの名前を変更}指定されたターゲットがパスまたはデバイス名を表すため、名前を変更できません。

は私が

を理解していないエラーが発生します[ERROR]指定されたターゲットがパスまたはデバイス名を表しているため、名前を変更できません。

+0

何に名前を変更しますか? –

+0

元のファイル名や名前を変更する名前など、いくつか詳しい情報を入力してください。 – Adam

答えて

0

他にも言及したように、あなたが達成しようとしているところで推測できるのは、私の推測です。

、私は次のようなコマンドを実行推測変更が

Get-ChildItem 'C:\temp\test\testsub' -Recurse -Include *.wav | % {rename-item $_.fullname $($_.directory.name.substring(0, 4) + '-' + $_.name) -whatif} 
+0

これは答えでしたが、なぜ私はまだ理解していません。ディレクトリ名の最初の4文字を使用して、その中に含まれるファイルの名前を変更しようとしました。ストリンガー氏に感謝します。 – sconard

0

を実現するために-whatifを削除します。

Get-ChildItem "C:\temp\test\testsub" -Recurse -Include *.wav | 
    %{Rename-Item $_ -NewName ("$_.Directory.Name.Substring(4)"+"($_.Name).wav")} 

それは生産:("$.Directory.Name.Substring(4)"+"($.Name).wav")が含まれているため、

Rename-Item : Cannot rename the specified target, because it represents a path or device name. 
At line:1 char:66 
+ ... e *.wav | %{Rename-Item $_ -NewName ("$_.Directory.Name.Substring(4)" ... 
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
+ CategoryInfo   : InvalidArgument: (:) [Rename-Item], PSArgumentException 
+ FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.RenameItemCommand 

すなわちパス。あなたは、次のコマンドを実行して、それを見ることができます。

Get-ChildItem "C:\temp\test\testsub" -Recurse -Include *.wav | 
    % { "$_.Directory.Name.Substring(4)"+"($_.Name).wav" } 

それは次のように生成しますMove-Itemコマンドレットを使用して、項目を移動し、名前を変更し、

C:\temp\test\testsub\a1.wav.Directory.Name.Substring(4)(C:\temp\test\testsub\a1.wav.Name).wav 
C:\temp\test\testsub\a2.wav.Directory.Name.Substring(4)(C:\temp\test\testsub\a2.wav.Name).wav 
C:\temp\test\testsub\a3.wav.Directory.Name.Substring(4)(C:\temp\test\testsub\a3.wav.Name).wav 

Rename-Item helpによります。

関連する問題