PowerShell如何替换路径中的多个文件

时间:2014-08-01 10:43:23

标签: file powershell while-loop

我是powershell的新手,需要一些帮助。 我有一些脚本的例子

1..10| % { #count of iteration
   While (@(Get-Job | Where { $_.State -eq "Running" }).Count -ge $MaxThreads)
   { 
     Write-Host "Waiting for open thread...($MaxThreads Maximum)"
     Start-Sleep -Seconds 2 #rump-up period
    }
   $Scriptblock = {
   param($name)
   & "ConsoleUI.exe" mode/s  savetodisk/true filepath/C:\6383.incoming
   Write-Host "Result of request № $name" $LASTEXITCODE 
   "Result of request № $name $LASTEXITCODE" | Out-File C:\results.txt -Append
   }
   Start-Job -ScriptBlock $Scriptblock -ArgumentList $_  
}

我在dir“C:\ test”中有一些文件,如“111.incoming”,“222.incoming”,“333.incoming”,我需要在文件路径/ C中替换它们:...转入循环。 有办法做到这一点吗? 感谢。

1 个答案:

答案 0 :(得分:0)

您没有提及是否需要立即将所有文件传递给ConsoleUI.exe,或者您是否需要逐个传递它们。我会猜测后者,例如,将它们逐个传递给ConsoleUI.exe。

我还使用Get-ChildItem DIR Select-Object SELECT 等别名来匹配您当前的使用情况。

$Scriptblock = {
param($name)
DIR 'C:\test\*.incoming' | Select -Expand FullName | % {
    & "ConsoleUI.exe" mode/s  savetodisk/true filepath/$_
    Write-Host "Result of request № $name, file $_ $LASTEXITCODE" 
    "Result of request № $name, file $_ $LASTEXITCODE" | Out-File C:\results.txt -Append
    }
}