9
ファイルを再帰的にコピーして名前を変更しようとしています。powershellを使用してコピーした後で名前を変更します。
私のフォルダには同じ名前のファイルがあるので、コピーするときに名前を変更する必要があります。
しかし、私は直面している問題です。以下は私のコードです。 CopyForBuild.batファイルを見つけ、それをE:\ CopyForBuildフォルダにコピーする必要があります。コピーが完了すると、最初のファイルはCopyforbuild1.txt、2番目のファイルはCopyforBuild2.txtとなります。
以下は私のコードです。どこで失敗したのですか?
$File = Get-ChildItem -Path V:\MyFolder -Filter CopyForbuild.bat -Recurse
$i=1
Foreach ($f in $File)
{
Copy-Item $f "E:\copyforbuild\"
Rename-Item -path "E:\Copyforbuild\"+"$f" -newname "CopyForbuild"+"$i"+".txt"
$i = $i+1
}
なぜプロセスに従うならば短く、より広いです一度に1つずつ(変数がデフォルト値を取得することを忘れないでください): 'Get-ChildItem -Path V:\ MyFolder -filt CoptForBuild.bat -rec |コピーアイテム-dest {"E:\ copyforbuild \" + $ _。BaseName +($ i ++)+ "。txt"} '。 ( 'Copy-Item'の目的地のようなタイプオブジェクトを取るパラメータを持つコマンドレットは、中括弧を使ってinbuilt for-eachを持っているので、ループが目的地を決定する必要はありません) – Richard
Buddy、例外をスローします。 "Copy-Item:引数がPathであるため、パラメータをPathにバインドできません。" – Samselvaprabu
$ File = Get-ChildItem -Path "V:\ MyFolder \\ *。*" -Filter CopyForbuild.bat -Rururse $ i = 1 Foreach($ f )$ファイルの { コピー項目$ f.FullName( "E:\ copyforbuild \" "TXT" + $ f.BaseName + $ I +) $ iが ++}私は*」を削除していた場合 – Samselvaprabu