我正在尝试多线程
$var3 = Get-ItemPropertyValue $var2 -Name fullName,CreationTime,lastAccessTime,LastWriteTime,length;
通过将其替换为:
$var3 = forEach($file in $var2) {
start-job -name "bla" -scriptblock {Get-ItemPropertyValue $file.FullName -Name fullName,LastWriteTime,CreationTime,lastAccessTime,length} | out-null
}
where$var2
保存通过 检索的文件列表gci
。
这适用于普通路径,但不适用于以 . 为前缀的长 UNC 路径\\?\UNC\
。
长路径本身可以正常工作,get-itemPropertyValue '\\?\UNC\some long path in Webdav'
但一旦我从 start-job 将它放入 scriptBlock 就不行了。
错误消息说(德语):
"Das Argument für den Parameter "Path" kann nicht überprüft werden. Das Argument ist NULL oder leer. Geben Sie ein Argument an, das nicht NULL oder leer ist, und führen Sie den Befehl erneut aus. + CategoryInfo : InvalidData: (:) [Get-ItemPropertyValue]、ParameterBindingValidationException + FullyQualifiedErrorId:ParameterArgumentValidationError、Microsoft.PowerShell.Commands.GetItemPropertyValueCommand + PSComputerName:本地主机
当我尝试将它与它绑定时,get-itemPropertyValue -LocalPath '\\?\UNC\some long path in Webdav'
它也会失败,但会出现以下错误消息:
Das Argument kann nicht an den 参数“LiteralPath”gebunden werden,da es NULL ist。+ CategoryInfo : InvalidData: (:) [Get-ItemPropertyValue], ParameterBindingValidationException + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.GetItemPropertyValueCommand + PSComputerName : localhost
任何人都可以检查,如果这是真的,这不起作用,或者显示一个运行的例子?我正在运行 PS 版本 5.1 并且必须使用此版本。
提前致谢。