0

私の問題に関連する質問を探しましたが、達成したいことに使用する正しい構文が見つかりません。

Get-ChildItem を使用してフォルダーからすべてのファイル名を取得し、これらを変数に格納してから、これらの名前を使用して別のフォルダー内のすべてのファイルの名前を変更したいと考えています。

私が見てきたことから、次のようなものが必要です。

CD directory a
$newnames = Get-ChildItem
CD directory b
Get-ChildItem | Foreach {$name = $newnames} | Rename-Item -Newname {$name}

おそらく私が直面している問題は、 $newnames 変数から名前を正しく呼び出すことだと思います。

私がしなければならないことの正しい構文を誰でもアドバイスできますか?

4

1 に答える 1

2

これらのフォルダーに同じ数のファイルがあると仮定した場合の 1 つの方法を次に示します。-WhatIf スイッチを削除して、実際にファイルの名前を変更します。

[array]$a = Get-ChildItem .\DirA
[array]$b = Get-ChildItem .\DirB

for($i=0; $i -lt $a.Length; $i++)
{
    $b[$i] | Rename-Item -NewName $a[$i] -WhatIf
}
于 2013-09-13T15:01:45.393 に答える