在PowerShell中写入包含多个作业的文件

Ald*_*ldu 5 windows parallel-processing powershell

我们有一个运行以下代码的活动:

$nr = $WorkflowData['_Number']

## Write to text
$nr>>C:\Configuration\nrFile.txt
Run Code Online (Sandbox Code Playgroud)

基本上它会获得一个应该添加到文件中的唯一编号.问题是此活动在可以同时运行的多个工作流中运行.这导致了许多错误,表示nrFile.txt由另一个同时运行的作业打开.

有没有办法同时从多个工作流程写入同一个文件?

或者也许以某种方式排队?

Kei*_*ill 7

您可以使用互斥锁同步文件访问权限,例如

$mutex = new-object System.Threading.Mutex $false,'SomeUniqueName'
...
nr = $WorkflowData['_Number']
$mutex.WaitOne() > $null
$nr >> C:\Configuration\nrFile.txt
$mutex.ReleaseMutex()
Run Code Online (Sandbox Code Playgroud)