所以,这绝对是鞭子我。我已经创建了一个脚本,它根据用户对许多问题的回答将数据从一个文件共享移动到另一个文件共享。我想做的是运行一个后台作业,在移动发生之前提供所有正在移动的文件的报告。因此,我添加了这一小段代码,它绝对不会从源文件共享中收集信息。它只是提供来自我的特定机器的数据。我做错了什么?
While ($sourcepath -eq $null) {
$sourcepath= read-host "Enter source file path"
}
Set-Location $sourcepath
Start-job -Scriptblock {Get-childitem -recurse |Out-File
c:\users\john.smith\desktop\shareonfile.txt}发布于 2017-01-28 01:49:25
作业在不同的进程中运行,具有自己的作用域。工作目录将不会被继承。要演示这一点,请执行以下操作:
Set-Location $sourcepath
Start-Job -ScriptBlock {
Get-Location
} | Wait-Job | Receive-Job
Get-Job | Remove-Job您应该避免设置位置,只需将路径传递给Get-ChildItem即可。要在作业中执行此操作,请定义一个参数并传递其值,如下所示:
Start-job -Scriptblock { param($thePath)
Get-childitem -Path $thePath -recurse |
Out-File c:\users\john.smith\desktop\shareonfile.txt
} -ArgumentList $sourcepathhttps://stackoverflow.com/questions/41899871
复制相似问题