向脚本Powershell添加写入进度条

向脚本Powershell添加写入进度条,powershell,Powershell,实际上,我正在编写一个powershell脚本,它可以按日期对图片和视频进行排序。脚本工作正常,但我想添加一个进度条,我不知道从哪里开始,这对我来说可能有点棘手,这就是为什么我要寻求帮助 下面是对图片进行排序的函数 foreach ($file in $Images) { $Directory = $destinationDirectory + "Pictures\" + $file.LastWriteTime.Date.ToString('yyyy') + "\" + $file.L

实际上,我正在编写一个powershell脚本,它可以按日期对图片和视频进行排序。脚本工作正常,但我想添加一个进度条,我不知道从哪里开始,这对我来说可能有点棘手,这就是为什么我要寻求帮助

下面是对图片进行排序的函数

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):


你好。你需要为你的进度条发布一些代码——在这里发布并说“我不知道如何开始”之前尝试一下。与同事交谈时这很好,但在这里,人们期待更多。否则人们会投票否决你。嗨!是的,当然,我同意。我在那里玩得很开心。你需要为你的进度条发布一些代码——在这里发布并说“我不知道如何开始”之前尝试一下。与同事交谈时这很好,但在这里,人们期待更多。否则人们会投票否决你。嗨!是的,当然,我同意。我很匆忙