0

次の Powershell スクリプトに変更を加える必要がありますが、結果のファイルを別のパスに書き込むのに時間がかかっています...名前を付けましょう$destPath

検討:

Get-ChildItem $sourcePath | % { [system.io.file]::Move($_.fullname, ($_.FullName -replace '\[|\]|-|,|\(|\)', '') ) }

move私の構文の理解に基づいて、$_.fullnameは私の元のファイルであり$_.FullName -replace...、新しいファイル名です。ただし、使用しようとする$destPath.FullName -replaceと、空のファイル名は正当ではないというエラーが表示されます。明らかに、Powershell はそれをmoveコマンドの有効なパス名として認識していません。

私は何が欠けていますか?

4

1 に答える 1

1

コンテキストで $destPath について言及していないため、変数 $destPath をまったく定義していない可能性がありますか? それは非常にありそうもないことですが、物事を絞り込もうとしているだけです。

これを機能させる別の方法:

最初に元の場所で子アイテムの名前を変更します。次に、それらを移動します。

get-childitem *.txt | rename-item -newname {$_.name -replace 'o','O'}

get-childitem *.txt | % {move-item -path $_.fullname -destination .\Test-files}

しかし、私はあなたのワンライナーを好みます:)

于 2013-06-18T22:44:22.263 に答える