9
파일을 반복적으로 복사하고 이름을 바꾸려고합니다.powershell을 사용하여 복사 한 후 이름 바꾸기
내 폴더의 이름이 같은 파일이 있으므로 복사하는 순간 이름을 바꿔야합니다.
하지만 계속 문제가 있습니다. 다음은 내 코드입니다. CopyForBuild.bat 파일을 찾아이를 E : \ CopyForBuild 폴더에 복사해야합니다. 복사가 끝나면 첫 번째 파일은 Copyforbuild1.txt이어야하고 두 번째 파일은 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
}
왜 프로세스를 따라야 한 번에 하나씩 (그리고 변수가 기본값을 얻음을 기억하십시오.)'Get-ChildItem -Path V : \ MyFolder -filt CoptForBuild.bat -rec | 복사 항목 -dest { "E : \ copyforbuild \"+ $ _. BaseName + ($ i ++) + ". txt"}'. ('Copy-Item'의 목적지처럼 타입 객체를 취하지 않는 매개 변수를 가진 Cmdlet은 중괄호를 사용하여 inbuilt for-each를 가지므로 루프가 대상을 결정할 필요가 없습니다.) – Richard
Buddy, 예외를 throw합니다 . "Copy-Item : 인수가 'Path'매개 변수를 null이 아니기 때문에 바인딩 할 수 없습니다." – Samselvaprabu
$ File = Get-ChildItem -Path "V : \ MyFolder \\ *. *"-Filter CopyForbuild.bat -Recurse $ i = 1 Foreach ($ f $ 파일) 의 { 복사 품목 $ f.FullName ("E : \ copyforbuild \"+ $ f.BaseName + $ I +) 은 $ i가 ++ "TXT."} 내가 제거하고 때 – Samselvaprabu