我很難用我的 ps 腳本按字母順序將檔案從檔案夾發送到 API。我還需要在發送 2 個檔案后讓腳本休眠 10 秒。我試圖將每個檔案 100 x 發送到這個 api,所以這就是為什么我在那里使用 1..100 并使用 $command 查看我的進度,但這已經有效,所以這就是為什么我沒有發布我的腳本的其余部分。
任何幫助都是appriciated,我想出了這個:
$url = "https://anywebserver"
$localfolder = "c:\folder"
Set-Location $localfolder
$localfiles = Get-ChildItem $localfolder | Sort-Object -Descending
$count=0
ForEach ($LocalFile in $localfiles)
{
if( $count %2 eq 0)
{
Start-Sleep -Seconds 10
}
$command = [scriptblock]{(1..100|%{result = Invoke-RestMethod -Method Post -InFile "$LocalFile -Uri $url;})}
}
uj5u.com熱心網友回復:
希望以下內容有助于展示如何按字母順序一次獲取 2 個檔案。為了測驗速度,我將 1..100 更改為 1..2 并將 sleep 更改為 1 秒,這些顯然可以更改為您的首選值。
$skip = 0
$copy = 1
$path = "c:\folder"
while(gci $path | ?{! $_.PSIsContainer} | sort Name | select -skip $skip | select -first 2){
$filesToCopy = gci $path | ?{! $_.PSIsContainer} | sort Name | select -skip $skip | select -first 2
1..2 | %{
#Perform copy
$filesToCopy
write-output "Copy Number $copy Complete"
Start-Sleep 1
}
$skip = $skip 2
$copy
}
uj5u.com熱心網友回復:
您Start-Sleep正在寫入資料的回圈之外運行,所以它所做的只是休眠,然后運行所有一百個 POST 請求,中間沒有休眠。你想要更像這樣的東西:
$url = "https://anywebserver"
$localfolder = "c:\folder"
Set-Location $localfolder
$localfiles = Get-ChildItem $localfolder | Sort-Object -Descending
$count=0
ForEach ($LocalFile in $localfiles)
{
$command = [scriptblock]{
For($i=1;$i -le 100;$i ){
result = Invoke-RestMethod -Method Post -InFile $LocalFile -Uri $url;
if(($i % 2) -eq 0){Start-Sleep -Seconds 10}
})
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/362433.html
標籤:电源外壳
下一篇:Powershell:回圈變數
