PowerShell コピー アイテムの進行状況

Migel Hewage Nimesha 2023年6月20日
PowerShell コピー アイテムの進行状況

ファイルのコピーは、1つまたは複数のファイルをソースからコピー先に転送する定期的なアクティビティです。 ソースと宛先は、同じホストまたは 2つの異なるホストにすることができます。

Copy-Item は、すべての PowerShell ユーザーがファイルをある場所から別の場所にコピーするために使用する基本的なコマンドレットの 1つです。 Copy-Item の唯一の欠点は、操作の進行状況を進行状況バーまたはパーセンテージとして表示しないことです。

Start-BitsTransfer コマンドレットは、作業するファイルが多数ある場合に便利です。また、コピー操作の進行状況を示す進行状況バーが表示されるのも良い点です。

この記事では、転送元から転送先にファイルをコピーする Start-BitsTransfer コマンドレットに焦点を当てます。

Start-BitsTransfer を使用して PowerShell でファイルをコピーする

Start-BitsTransfer コマンドレットは、BITS ジョブを初期化して、1つまたは複数のファイルをソースから宛先に問題なくコピーします。 通常、コマンドレットが BITS ジョブを初期化すると、PowerShell は非対話型になります。

さらに、コマンドレットは、コピー機能を向上させるためにいくつかのオプションの引数を受け入れます。 以下は、Start-BitsTransfer コマンドレットの一般的な構文です。

Start-BitsTransfer
     [-Asynchronous]
     [-Dynamic]
     [-CustomHeadersWriteOnly]
     [-Authentication <String>]
     [-Credential <PSCredential>]
     [-Description <String>]
     [-HttpMethod <String>]
     [[-Destination] <String[]>]
     [-DisplayName <String>]
     [-Priority <String>]
     [-TransferPolicy <CostStates>]
     [-ACLFlags <ACLFlagValue>]
     [-SecurityFlags <SecurityFlagValue>]
     [-UseStoredCredential <AuthenticationTargetValue>]
     [-ProxyAuthentication <String>]
     [-ProxyBypass <String[]>]
     [-ProxyCredential <PSCredential>]
     [-ProxyList <Uri[]>]
     [-ProxyUsage <String>]
     [-RetryInterval <Int32>]
     [-RetryTimeout <Int32>]
     [-MaxDownloadTime <Int32>]
     [-Source] <String[]>
     [-Suspended]
     [-TransferType <String>]
     [-CustomHeaders <String[]>]
     [-NotifyFlags <NotifyFlagValue>]
     [-NotifyCmdLine <String[]>]
     [-CertStoreLocation <CertStoreLocationValue>]
     [-CertStoreName <String>]
     [-CertHash <Byte[]>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]

TransferType 引数は、コピー操作の方向を指定するために使用されます。 ダウンロードまたはアップロードのいずれかです。

D ドライブに codes という名前のフォルダーを作成し、300 近くのテキスト ファイルを保存します。 さらに、copiedfiles という別の空のフォルダーを作成します。

次に、Start-BitsTransfer コマンドを使用して、ソース フォルダー codes から宛先フォルダー copiedfiles にファイルをコピーします。 覚えておくべきことの 1つは、事前に BitsTransfer モジュールをインポートすることです。

Import-Module BitsTransfer
Start-BitsTransfer -Source "D:\codes\*.txt" -Destination "D:\copiedfiles\" -TransferType Download

出力:

Start-BitsTransfer

上の図からわかるように、コピー操作が開始されるとプログレス バーが表示されます。 これは、エンド ユーザーが操作の進行状況を把握するのに非常に役立つ指標です。

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.