所以,这绝对是在鞭打我。我创建了一个脚本,根据用户对一个文件共享中的一些问题的响应来移动数据。我想要做的是运行后台作业,提供移动前移动的所有文件的报告。结果,我添加了一些绝对不从源文件共享收集信息的代码。它只是提供我特定机器的数据。我做错了什么?
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}
答案 0 :(得分:1)
作业在不同的流程中运行,具有自己的范围。工作目录不会被继承。为了证明这一点:
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 $sourcepath