如何在 PowerShell 中向命令添加进度条
How to add a progress bar to a command in PowerShell
我正在编写一个脚本,使用此命令在 powershel 中删除用户配置文件
Get-WMIObject -class Win32_UserProfile | Where {(!$_.Special) -and (!$_.loaded)} | Remove-WmiObject
我将如何向命令添加进度条,以便在删除一个配置文件后它会上升,这是 gui 程序的一部分并且控制台是隐藏的
如果您要使用 Write-Progress
,我建议您使用循环遍历每个用户配置文件。类似的东西。
$profiles = Get-WMIObject -class Win32_UserProfile | Where {(!$_.Special) -and (!$_.loaded)}
$num_profiles = $profiles.Count
Function Remove_Prof
{
for ($i = 1; $i -lt $num_profiles; $i++)
{
Remove-WMIObject $profiles[$i]
Start-Sleep -m 1000
Write-Progress -Activity 'Removing Profiles' -Status "Deleted $i out of $num_profiles profiles" -PercentComplete (($i/$num_profiles) * 100)
}
}
Remove_Prof;
您可以 replace/remove 睡眠呼叫 - 我只是有那个,因为在我的测试中我实际上并没有删除配置文件。
我正在编写一个脚本,使用此命令在 powershel 中删除用户配置文件
Get-WMIObject -class Win32_UserProfile | Where {(!$_.Special) -and (!$_.loaded)} | Remove-WmiObject
我将如何向命令添加进度条,以便在删除一个配置文件后它会上升,这是 gui 程序的一部分并且控制台是隐藏的
如果您要使用 Write-Progress
,我建议您使用循环遍历每个用户配置文件。类似的东西。
$profiles = Get-WMIObject -class Win32_UserProfile | Where {(!$_.Special) -and (!$_.loaded)}
$num_profiles = $profiles.Count
Function Remove_Prof
{
for ($i = 1; $i -lt $num_profiles; $i++)
{
Remove-WMIObject $profiles[$i]
Start-Sleep -m 1000
Write-Progress -Activity 'Removing Profiles' -Status "Deleted $i out of $num_profiles profiles" -PercentComplete (($i/$num_profiles) * 100)
}
}
Remove_Prof;
您可以 replace/remove 睡眠呼叫 - 我只是有那个,因为在我的测试中我实际上并没有删除配置文件。