找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 13147|回复: 1

[问题求助] 请教PowerShell使用多线程模块执行命令

[复制链接]
发表于 2022-1-27 15:18:55 | 显示全部楼层 |阅读模式
对多线程有点好奇, 大概意思应该就是同一时间做多件事吧, 百度搜索到一篇文章, 里面的作者制作了一个多线程模块,

文章链接:
https://www.cnblogs.com/chenxizhang/p/6936666.html

原码链接:
https://github.com/chenxizhang/MultiThreadTaskRunner

使用方法也写的很清楚, 如下:

第1步: 需要进行安装(请用管理员身份打开PowerSehll)
Install-Module -Name MultiThreadTaskRunner

第2步: 准备一个用来测试的脚本块
$script ={

param($obj);

Write-Host $obj

}

请注意,这里只是用最简单的代码做了实现,根据传入的一个参数,输出数据


第3步: 就可以进行快速使用了
New-MultiTaskJob –Source 1..100 –Block $script –ThreadCount 10
这个命令的意思是指,用10个并行的线程,处理传入的100个数字,实际上每个线程分配得到的数字是10个,然后使用此前定义好的脚本块执行它
-----------------------------------------------------------------------------------------------------
我按上面的步骤操作下来, 把下面的代码执行后, 直接报错! 感觉是不是需要给$script 加点东西? 不是太懂, 期待高手能做个示例, 提前感谢!
$script = {
       
        param ($obj);
       
        Write-Host $obj
       
}

New-MultiTaskJob -Source 1..100 -Block $script -ThreadCount 10
 楼主| 发表于 2022-1-27 15:23:15 | 显示全部楼层
本帖最后由 5i365 于 2022-1-27 15:27 编辑

比如, 我想先后下载5个tim【下载的文件名后可以加 _序号】,可以用下面的代码循环5次, 如果要用上面的多线程的模块, 应该怎样操作?

$vUrl = 'https://dldir1.qq.com/qqfile/qq/TIM3.3.9/TIM3.3.9.22051.exe'
$vLocalPath = 'c:/tim.exe'
Import-Module BitsTransfer
Start-BitsTransfer "$vUrl" "$vLocalPath"
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 07:43 , Processed in 0.065937 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表