1 Star 0 Fork 52

Sunday / kasini3000

forked from chuanjiao10 / kasini3000 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
bf并发锁写txt_v15.ps1 4.74 KB
一键复制 编辑 原始数据 按行查看 历史
#建议保存编码为:bom头 + utf8
#随机延时,并发写入txt文件。文件输出为bom头+utf16le。
#强制写为utf8+bom编码。
param
(
[parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[Alias("file")][String]$写入文件名,
[parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[Alias("value")][String]$写入值
)
#region 用户更改
$随机延时1次数 = 2
$随机延时2次数 = 5
$随机延时3次数 = 3
$随机延时4次数 = 2
#endregion 用户更改
if (Test-Path -LiteralPath $写入文件名)
{
}
else
{
Write-Warning '用法:./bf并发锁写txt_v15.ps1 -写入文件名 "已有的输出文件" -写入值 "xxx" '
Write-Error '错误:找不到输出文件。返回码1'
exit 1
}
$输出文件大小 = (Get-Content -LiteralPath $写入文件名).length
if ($输出文件大小 -gt 20mb)
{
Write-Error '错误:输出文件太大。返回码2'
exit 2
}
function 随机延时1
{
$毫秒1 = 59,83,113,47,149,173,67,137,181
$延时1 = Get-Random -InputObject $毫秒1
Write-Verbose "延时1 $延时1"
Start-Sleep -Milliseconds $延时1
}
function 随机延时2
{
$毫秒2 = 450,560,590,710,390,710,710,820,820,930,930,1040,1150,1260,1370,1580
$延时2 = Get-Random -InputObject $毫秒2
Write-Verbose "延时2 $延时2"
Start-Sleep -Milliseconds $延时2
}
function 随机延时3
{
$秒3 = 2,2,2,2,3,3,3,4,4,5,6
$延时3 = Get-Random -InputObject $秒3
Write-Verbose "延时3 $延时3"
Start-Sleep -Seconds $延时3
}
function 随机延时4
{
$秒4 = 10,12,15,17,19,21
$延时4 = Get-Random -InputObject $秒4
Write-Verbose "延时4 $延时4"
Start-Sleep -Seconds $延时4
}
function 写入输出txt ($要上锁的文件,$输出值2)
{
try
{
$文件流 = New-Object System.IO.FileStream($要上锁的文件,[System.IO.FileMode]::Open,[System.IO.FileAccess]::Write,[System.IO.FileShare]::Write) #《-----这句是关键
$文件流.Position = $文件流.Length #移动光标到文件末尾,以便追加数据。
$文件 = New-Object System.IO.StreamWriter($文件流,[System.Text.Encoding]::UTF8)
$文件.WriteLine($输出值2)
#这里不能加Start-Sleep
$文件.Dispose()
$文件流.Dispose()
return $true
#问:这个脚本谁写的?有问题找谁技术支持?
#答:QQ群号=183173532
#名称=powershell交流群
# 2016-12-20 转载留名
}
catch
{
Write-Verbose '错误:文件上锁失败,无法写入!'
return $false
}
}
function 循环随机写入
{
for ($i1 = $随机延时1次数; $i1 -gt 0; $i1--)
{
if ((写入输出txt -要上锁的文件 $写入文件名 -输出值2 $写入值) -eq $true)
{
Write-Verbose '信息:文件写入成功!'
exit 0
}
随机延时1
}
}
for ($i2 = $随机延时2次数; $i2 -gt 0; $i2--)
{
循环随机写入
#Write-Verbose '信息:执行2级延时'
随机延时2
}
for ($i3 = $随机延时3次数; $i3 -gt 0; $i3--)
{
循环随机写入
#Write-Verbose '信息:执行3级延时'
随机延时3
}
for ($i4 = $随机延时4次数; $i4 -gt 0; $i4--)
{
循环随机写入
#Write-Verbose '信息:执行4级延时'
随机延时4
}
Write-Error '错误:文件上锁失败,无法写入!返回码4'
exit 4
PowerShell
1
https://gitee.com/sundayisblue/kasini3000.git
git@gitee.com:sundayisblue/kasini3000.git
sundayisblue
kasini3000
kasini3000
master

搜索帮助