我有一个以格式存储的文件
C:\Users\xx\test powershell script\studyID\number\filenamedfolder\example.jpg
所需的输出是:
studyID_number_1
#最后一个数字应该为'filenamedfolder'中的每个jpg实例按顺序编号。
我已使用先前答案中给出的代码来查找、重命名文件并将其复制到根目录。
我正在使用 Windows 10 和 Powershell:
Major Minor Build Revision
----- ----- ----- --------
5 1 15063 1478
Get-childitem "C:\Users\xx\test powershell script\*" -include *.jpg -recurse |% {
$nextName = Join-Path -Path 'C:\Users\xx\test powershell script\*' -ChildPath $_.name
while(Test-Path -Path $nextName)
{
$nextName = Join-Path "C:\Users\xx\test powershell script" ($_.BaseName + "_$num" + $_.Extension)
$num+=1
}
$ParentOjbect =$_.Directory
$Parent =$ParentOjbect.Name
$GrandParent = $ParentOjbect.Parent
$GreatGran = $GrandParent.Parent
$Extension = $_.Extension
$countRef = [ref] 0
Copy-item $_ -Destination (Join-Path "C:\Users\xx\test powershell script" ('{0}_{1}_{2}{3}' -f $GrandParent,$GreatGran,++$countRef.Value,$Extension))
}
我试图使用代码来顺序命名文件,但是当“filenamedfolder”中存在多个 jpg 时,我的代码不是顺序命名文件。相反,只有一个 jpg 被复制并重命名到根文件夹中。
我从未在 powershell 中编码,我不确定我做错了什么。我似乎找不到现有的答案。有人可以建议进行调整以使其正常工作吗?