向脚本Powershell添加写入进度条
实际上,我正在编写一个powershell脚本,它可以按日期对图片和视频进行排序。脚本工作正常,但我想添加一个进度条,我不知道从哪里开始,这对我来说可能有点棘手,这就是为什么我要寻求帮助 下面是对图片进行排序的函数向脚本Powershell添加写入进度条,powershell,Powershell,实际上,我正在编写一个powershell脚本,它可以按日期对图片和视频进行排序。脚本工作正常,但我想添加一个进度条,我不知道从哪里开始,这对我来说可能有点棘手,这就是为什么我要寻求帮助 下面是对图片进行排序的函数 foreach ($file in $Images) { $Directory = $destinationDirectory + "Pictures\" + $file.LastWriteTime.Date.ToString('yyyy') + "\" + $file.L
foreach ($file in $Images)
{
$Directory = $destinationDirectory + "Pictures\" + $file.LastWriteTime.Date.ToString('yyyy') + "\" + $file.LastWriteTime.Date.ToString('MMM')
if (!(Test-Path $Directory))
{
New-Item $directory -type directory
}
Copy-Item $file.fullname $Directory
}
我阅读了有关Write progress函数的文档,但我真的不知道在这个脚本中应该如何管理它。Write progress cmdlet需要一些数学知识才能使它适合您的情况。这应该做到:
$i = 1
foreach ($file in $Images)
{
$Directory = $destinationDirectory + "Pictures\" + $file.LastWriteTime.Date.ToString('yyyy') + "\" + $file.LastWriteTime.Date.ToString('MMM')
if (!(Test-Path $Directory))
{
New-Item $directory -type directory
}
Copy-Item $file.fullname $Directory
[int]$Percent = $i / $Images.count * 100
Write-Progress -Activity "Copying photos" -Status "$Percent% Complete:" -PercentComplete $Percent
$i++
}
首先,从计数器变量$i
开始,并将其设置为1以表示第一项。这是在循环外部设置的,因此它不会在每次循环运行时重置回1
然后,在循环内,通过将$i
的值除以项数并乘以100来定义$Percent
变量。然后,调用带有必要参数的写入进度
,以显示进度。然后使用$i++
将计数器向上递增1
旁注:
$Percent
通过在其前面放置[int]
将其设置为整数,从而强制其显示整数。如果要查看分数值,只需删除[int]
Write Progress cmdlet需要一些数学知识才能使其适合您的情况。这应该做到:
$i = 1
foreach ($file in $Images)
{
$Directory = $destinationDirectory + "Pictures\" + $file.LastWriteTime.Date.ToString('yyyy') + "\" + $file.LastWriteTime.Date.ToString('MMM')
if (!(Test-Path $Directory))
{
New-Item $directory -type directory
}
Copy-Item $file.fullname $Directory
[int]$Percent = $i / $Images.count * 100
Write-Progress -Activity "Copying photos" -Status "$Percent% Complete:" -PercentComplete $Percent
$i++
}
首先,从计数器变量$i
开始,并将其设置为1以表示第一项。这是在循环外部设置的,因此它不会在每次循环运行时重置回1
然后,在循环内,通过将$i
的值除以项数并乘以100来定义$Percent
变量。然后,调用带有必要参数的写入进度
,以显示进度。然后使用$i++
将计数器向上递增1
旁注:
$Percent
通过在其前面放置[int]
将其设置为整数,从而强制其显示整数。如果要查看分数值,只需删除[int]
使用一个变量来保存复制的文件计数,为每个操作增加它,然后显示百分比。这个例子有一个很好的例子
我建议也使用PowerShell管道,而不是使用foreach
类似这样的内容(准备好后删除-WhatIf
s):
使用一个变量保存复制的文件数,为每个操作递增,然后显示百分比。这个例子有一个很好的例子 我建议也使用PowerShell管道,而不是使用
foreach
类似这样的内容(准备好后删除-WhatIf
s):
你好。你需要为你的进度条发布一些代码——在这里发布并说“我不知道如何开始”之前尝试一下。与同事交谈时这很好,但在这里,人们期待更多。否则人们会投票否决你。嗨!是的,当然,我同意。我在那里玩得很开心。你需要为你的进度条发布一些代码——在这里发布并说“我不知道如何开始”之前尝试一下。与同事交谈时这很好,但在这里,人们期待更多。否则人们会投票否决你。嗨!是的,当然,我同意。我很匆忙