gpt4 book ai didi

powershell - 使用Powershell复制后重命名

转载 作者:行者123 更新时间:2023-12-03 08:05:39 28 4
gpt4 key购买 nike

我试图递归地复制文件并重命名它们。

我的文件夹中的文件具有相同的名称,因此我需要在复制文件时将其重命名。

但是我一直面临着问题。以下是我的代码。它应该找到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
}

最佳答案

您可以在复制项中复制时重命名文件,只需在两个位置都提供完整路径即可:

copy-item c:\PST\1.config c:\PST\2.config

这会将1.config重命名为2.config。无需调用单独的重命名功能。
您的代码现在应如下所示:
$File = Get-ChildItem -Path "V:\MyFolder\" -Filter CopyForbuild.bat -Recurse

$i=1
Foreach ($f in $File)
{
Copy-Item $f.FullName ("E:\copyforbuild\" + $f.BaseName + $i +".txt")
$i++
}

如果使用For循环,则可以使其更短:
$File = Get-ChildItem -Path "V:\MyFolder\" -Filter CopyForbuild.bat -Recurse

for($i = 0; $i -lt $File.Count; $i++)
{
Copy-Item $File[$i].FullName ("E:\copyforbuild\" + $File[$i].BaseName + $i +".txt")
}

或者,如果遵循理查德的评论,则更短或更宽

关于powershell - 使用Powershell复制后重命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8678523/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com