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 | Copy-Item -dest {“E:\ copyforbuild \”+ $ _。BaseName +($ i ++)+“。txt”}'。 (具有不带类型对象参数的Cmdlet,如'Copy-Item'的目标,通过使用大括号具有内置的for-each,因此不需要循环来确定目标。) – Richard 2011-12-30 10:49:11
Buddy,它抛出异常。 “Copy-Item:无法将参数绑定到参数'Path',因为它是空的。” $ File指定“*。*”时不包含任何项目 – Samselvaprabu 2011-12-30 10:57:20
$ File = Get-ChildItem -Path“V:\ MyFolder \\ *。*”-Filter CopyForbuild.bat -Recurse $ i = 1 Foreach($ f在$文件) { 拷贝项目$ f.FullName( “E:\ copyforbuild \” + $ f.BaseName + $ I +) $ I ++ 名为 “txt”} – Samselvaprabu 2011-12-30 11:00:38