更新.我在Visual Studio 2010中使用C#/ .Net 4.0创建了一个PowerShell 3.0 cmdlet.它工作正常.但cmdlet需要一段时间,我想添加一个进度条.关于WriteProgressCommand的MSDN文档含糊不清.这是链接:http://msdn.micros...
![](https://oss.womengda.net/imgfile/2309/1E39A4Y52540-35V1.jpg)
更新.我在Visual Studio 2010中使用C#/ .Net 4.0创建了一个PowerShell 3.0 cmdlet.它工作正常.但cmdlet需要一段时间,我想添加一个进度条.
关于WriteProgressCommand的MSDN文档含糊不清.这是链接:http://msdn.microsoft.com/en-us/library/microsoft.powershell.commands.writeprogresscommand.completed(v=vs.85).aspx
下面的代码显示了我想要做的事情.基本上在ProcessRecord()下进行一些处理.然后每秒更新进度条.不确定如何显示进度条.救命?
[System.Management.Automation.Cmdlet(System.Management.Automation.VerbsCommon.Get, "StatusBar")]
public class GetStatusBarCommand : System.Management.Automation.PSCmdlet
{
/// <summary>
/// Provides a record-by-record processing functionality for the cmdlet.
/// </summary>
protected override void ProcessRecord()
{
WriteProgressCommand progress = new WriteProgressCommand();
for (int i = 0; i < 60; i++)
{
System.Threading.Thread.Sleep(1000);
progress.PercentComplete = i;
}
progress.Completed = true;
this.WriteObject("Done.");
return;
}
}
// Commented out thanks to Graimer's answer
// [System.Management.Automation.CmdletAttribute("Write", "Progress")]
// public sealed class WriteProgressCommand : System.Management.Automation.PSCmdlet { }
解决方法:
我已经测试了cmdlet现在开发10分钟并找出了进度条的工作原理.我甚至无法添加WriteProgressCommand类(但后来我又是编程菜鸟).我做的工作虽然如下:
protected override void ProcessRecord()
{
ProgressRecord myprogress = new ProgressRecord(1, "Testing", "Progress:");
for (int i = 0; i < 100; i++)
{
myprogress.PercentComplete = i;
Thread.Sleep(100);
WriteProgress(myprogress);
}
WriteObject("Done.");
}
ProgressRecord存储进度定义,并调用WriteProgress命令以使用新更新的progressdata更新shell(powershell窗口).构造函数中的“1”只是一个id.
本文标题为:如何在PowerShell C#cmdlet中使用WriteProgressCommand?
![](/xwassets/images/pre.png)
![](/xwassets/images/next.png)
- 在C# 8中如何使用默认接口方法详解 2023-03-29
- Unity Shader实现模糊效果 2023-04-27
- Oracle中for循环的使用方法 2023-07-04
- user32.dll 函数说明小结 2022-12-26
- WPF使用DrawingContext实现绘制刻度条 2023-07-04
- .NET CORE DI 依赖注入 2023-09-27
- 如何使用C# 捕获进程输出 2023-03-10
- C# 使用Aspose.Cells 导出Excel的步骤及问题记录 2023-05-16
- c# 模拟线性回归的示例 2023-03-14
- Unity3D实现渐变颜色效果 2023-01-16