ネットワークを介してパッケージをコピーしたいのですが、これは数GBあります。私のPSスクリプトと残りのタスクが依存していないので、コピーを完了するためにコピーできません。これを行う最善の方法は何でしょうか?待たずにアイテムをコピーする
現在、私は最善の方法は、待機しないでコピーを実行する別のスクリプトを呼び出すことだと思う。あなたの考えは非常に高く評価されています。
ネットワークを介してパッケージをコピーしたいのですが、これは数GBあります。私のPSスクリプトと残りのタスクが依存していないので、コピーを完了するためにコピーできません。これを行う最善の方法は何でしょうか?待たずにアイテムをコピーする
現在、私は最善の方法は、待機しないでコピーを実行する別のスクリプトを呼び出すことだと思う。あなたの考えは非常に高く評価されています。
Powershellには、これを行うための多くのオプションがあります。
#Put you script here which you want to do before copying
$source_path = "\\path\to\source\file"
$destination_path = "path\to\destination\file"
Start-Job -ScriptBlock {param($source_path,$destination_path) Copy-item $source_path $destination_path} -ArgumentList $source_path,$destination_path
# Keep Your remaining script here
またはあなたはあなたがバックグラウンドインテリジェント転送サービス(BITS)のコマンドレットを使用しますが、ためにすることができ、この
$copyJob = Start-Job –ScriptBlock {
$source = "\\path\to\source\file"
$target = "path\to\destination\file"
Copy-Item -Path $source -Destination $target -Recurse Verbose
}
のように行うことができます。一つの最も簡単な方法は次のようにコピーとしてPSJobを使用することですあなたはモジュールが存在する必要があります。次に
Import-Module BitsTransfer
可能なオプションの1つは、Start-BitsTransferに-asynchronousフラグを付けることです。 An article explaining how that works is available here。
ありがとう、ちょうど私が必要とするように見えます! –