首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在powershell中异步移动文件

在powershell中异步移动文件
EN

Stack Overflow用户
提问于 2014-11-20 11:00:16
回答 1查看 2.1K关注 0票数 3

我有以下问题:我正在编写一个循环,以检查某个文件夹中是否出现了一些文件,如果出现了,则将这些文件移动到另一个文件夹。

脚本现在运行得很好,下面是它的代码:

代码语言:javascript
复制
$BasePath = "C:\From"
$TargetPath = "C:\To"
$files = Get-ChildItem -File -Recurse -Path "$($BasePath)\$($Filename)" -ErrorAction SilentlyContinue

foreach ($file in $files)
{
    $subdirectorypath = split-path $file.FullName.Replace($BasePath, "").Trim("\")
    $targetdirectorypath = "$($TargetPath)\$($subdirectorypath)"
    if ((Test-Path $targetdirectorypath) -eq $false)
    {
        Write-Host "Creating directory: $targetdirectorypath"
        md $targetdirectorypath -Force
    }

    Write-Host "Copying file to: $($targetdirectorypath.TrimEnd('\'))\$($File.Name)"
    Move-Item $File.FullName "$($targetdirectorypath.TrimEnd('\'))\$($File.Name)" -Force
}

但是,由于其中一些文件可能相当大,我想以“失忆”的方式异步地移动这些文件。用powershell做这件事的最好方法是什么?这个脚本可能会永远运行,所以任何异步作业都必须在完成复制之后自行处理。

谢谢你的建议

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-20 11:10:48

我会用一份背景工作:

代码语言:javascript
复制
$scriptblock = {
    $BasePath = $args[0]
    $TargetPath = $args[1]
    $files = Get-ChildItem -File -Recurse -Path "$($BasePath)\$($Filename)" -ErrorAction SilentlyContinue

    foreach ($file in $files)
    {
        $subdirectorypath = split-path $file.FullName.Replace($BasePath, "").Trim("\")
        $targetdirectorypath = "$($TargetPath)\$($subdirectorypath)"
        if ((Test-Path $targetdirectorypath) -eq $false)
        {
            Write-Host "Creating directory: $targetdirectorypath"
            md $targetdirectorypath -Force
        }

        Write-Host "Copying file to: $($targetdirectorypath.TrimEnd('\'))\$($File.Name)"
        Move-Item $File.FullName "$($targetdirectorypath.TrimEnd('\'))\$($File.Name)" -Force
    }
}

$arguments = @("C:\From","C:\To")
start-job -scriptblock $scriptblock -ArgumentList $arguments

如果以后希望看到作业的任何输出,可以执行以下操作

代码语言:javascript
复制
Get-Job | Receive-Job
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27037932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档