PowerShellでファイルをコピーまたは移動する方法

2021年5月15日 1201 ビュー

PowerShellを使用してファイルをコピーまたは移動する方法を知りたいですか?





このSゾーンでは、PowerShellを使用してファイルをコピーする方法を説明します。 Get-ChildItemコピーアイテム コマンドレット。このガイドでは、PowerShellを使用してファイルをコピーする3つの方法について説明します。



最後に、PowerShellを使用してファイルを移動する方法についても学習します。ファイルのコピーとは異なり、ファイルを移動すると、ファイルはそのソースから削除されます。

投稿トピックを閲覧する



PowerShellを使用して単一のファイルをコピーする方法

PowerShellを使用して単一のファイルをコピーする方法

この最初のセクションでは、PowerShellを使用して単一のファイルをコピーする方法を説明します。 1つのファイルをコピーする場合でも、フォルダー内のすべてのファイルをコピーする場合でも、PowerShellコマンドには2つの部分があります。



コマンドの最初の部分では、 Get-ChildItem コマンドレットから リスト ファイル。次にあなた パイプ の出力 Get-ChildItem にコマンド コピーアイテム コマンドレット。

でファイルを一覧表示する方法 Get-ChildItem

このセクションの冒頭で述べたように、PowerShellでファイルをコピーする前に、まず リスト それで Get-ChildItem



この例では、Byte Count Toolというファイルを現在のフォルダーからD: G-Drive Work Tools Products Portal2にコピーします。



大人のウェブサイトをブロックするアンドロイド
PowerShellを使用して単一のファイルをコピーする方法

テキストファイルを一覧表示するには、次のコマンドを実行します。

Get-ChildItem 'D:G-DriveWork ToolsProducts PortalByte Count Tool.txt'

コマンドを実行する最も速い方法は、PowerShellプロンプトをファイルとフォルダーの横に配置することです。次に、 Get-ChildItem PowerShellプロンプトで–スペースバーキーを押してスペースを追加します。

次に、ファイルをフォルダーからPowerShellプロンプトにドラッグします。

最後に、PowerShellプロンプトを開いた状態でファイルのプロパティを一覧表示するには、Enterキーを押します。

サーバーへの接続が頂点をタイムアウトしました

の出力をパイプする方法 Get-ChildItemコピーアイテム

コピーするファイルのプロパティをリストしたら、それをパイプで コピーアイテム 。次に、 コピーアイテム コマンドの一部として、ファイルのコピー先のフォルダーを指定します。

ファイルをコピーするPowerShellコマンドは次のとおりです。

Get-ChildItem 'D:G-DriveWork ToolsProducts PortalByte Count Tool.txt' | Copy-Item -Destination 'D:G-DriveWork ToolsProducts Portal 2'
フォルダパスの間にスペースがあるため、フォルダパスの前後に引用符を追加しました。

Enterキーを押すと、コマンドが実行されます–ファイルは指定された宛先にコピーされます

PowerShellを使用してフォルダー内のすべてのファイルタイプをコピーする方法

PowerShellを使用してフォルダー内のすべてのファイルタイプをコピーする方法

このガイドの最後のセクションでは、PowerShellを使用して単一のファイルをコピーする方法を説明しました。ただし、フォルダ内のすべてのファイルタイプをコピーする必要がある場合があります。

このセクションでは、特定のファイル拡張子を持つすべてのファイルをフォルダーから別のフォルダーにコピーする方法を学習します。たとえば、.logファイル拡張子を持つすべてのファイルをC: Windowsから別のフォルダーにコピーしたい場合があります。

このプロセスは単一のファイルのコピーに似ていますが、追加の手順が必要です。具体的には、PowerShellで複数のファイルをコピーするには、簡単なスクリプトを作成する必要があります。

スクリプトの最初の部分では、 Get-ChildItem コピーするファイルを一覧表示するコマンドレット。次に、スクリプトの2番目の部分で、 ForEach ファイルのリストを反復処理するためにループします。

最後に、 ForEach ループ、あなたは含まれます コピーアイテム 各ファイルを必要な宛先にコピーするためのコマンドレット。

作成しようとしている単純なPowerShellスクリプトを理解しやすくするために、このセクションを2つのサブセクションに分割します。

すべてのファイルタイプを一覧表示する方法 Get-ChildItem

この例では、拡張子が.logのすべてのファイルをC: WindowsからD: Logファイルにコピーします。ただし、すでに上で示唆したように、最初のステップは Get-ChildItem 拡張子が.logのすべてのファイルを一覧表示するコマンドレット。

繰り返しになりますが、最後のコマンドを理解しやすくするために、基本から始めましょう。まず、以下のコマンドを使用して、ソースフォルダー内のすべてのファイルとフォルダーを一覧表示します。

Get-ChildItem C:Windows

最後のコマンドは、ファイルとフォルダーの両方を表示します。

PowerShellを使用してフォルダー内のすべてのファイルタイプをコピーする方法

ただし、PowerShellを使用して、拡張子が.logのファイルのみをコピーする必要があります。そこで、これらのファイルだけを表示するコマンドをもう1つ追加します。

最後のスクリーンショットをもう一度見てください。最後の列は名前と呼ばれます。これは、ファイルまたはフォルダーの名前です。この情報はまもなく使用します。

この目的を達成するために、Get-ChildItem C: Windowsの出力を Where-Object 指図。これがそのトリックを行うコマンドです。

Get-ChildItem C:Windows |  Where-Object  { $_.Name -like '*.log' } | Select-Object  FullName  
Get-ChildItem C: Windowsの結果の[名前]列に注意するように言ったことを覚えていますか? PowerShellでは、$ _を使用します。オブジェクトを参照するための自動変数。上記のコマンドでは、「。log」を含む名前のオブジェクトのみを表示するようにPowerShellに指示しました。最後に、結果をSelect-Objectコマンドレットにパイプして、表示するように指示しました。 フルネーム ファイルの。ザ フルネーム ファイルパスが含まれます。

上記のコマンドの結果は次のとおりです。他のすべての情報を削除しました。これで、コピーする必要のあるファイルだけができました。ただし、この部分はまだ完了していません。スクリプト作成の最後の部分に進む前に、もう1つ追加する必要があります。

そのビットは、最後のコマンドを変数に追加することです–変数を呼び出します ログファイル 。これがその仕事をするコマンドです。

$logfiles = Get-ChildItem C:Windows |  Where-Object  { $_.Name -like '*.log' } | Select-Object  FullName  

このコマンドと最後のコマンドの唯一の違いは、$ logfiles =ビットです。これは、PowerShellにの出力を保存するように指示します Get-ChildItem C: Windows | Where-Object {$ _。Name-like ‘*。log’} | Select-Object FullName –という変数で ログファイル

最後のコマンドとは異なり、最新のコマンドを実行すると、結果が表示されません。これは、出力がコンソールに表示されるのではなく、変数に保存されるようになったためです。

PowerShellを使用して複数のファイルをコピーする方法 ForEach ループ

スクリプト作成のこの最後の部分では、魔法を紹介します ForEachループ 。 ForEachループとその構文について詳しく知りたい場合は、ForEachループをクリックしてください。

一般に、ForEachループの構文は次のようになります。

人生360を回避する方法
ForEach ($item in $collection) {Perform a task based on a powershell command}

したがって、これを状況に適用すると、PowerShellで.log拡張子を持つすべてのファイルをコピーすることを念頭に置いて、ForEachコマンドは次のようになります。

ForEach ($logfile in $logfiles.  FullName  ) {Copy-Item $logfile -Destination 'D:Log Files'}

最後に、この最後のコマンドを最後のセクションのGet-ChildItemと組み合わせてみましょう。最終的なスクリプトは次のようになります。

$logfiles = Get-ChildItem C:Windows |  Where-Object  { $_.Name -like '*.log' } | Select-Object  FullName  ForEach ($logfile in $logfiles.  FullName  ) {Copy-Item $logfile -Destination 'D:Log Files'}
私がどのように含めたかに注意してください。 フルネーム ForEachループの$ logfiles部分にあります。これは、コマンドの最初の部分でSelect-Objectコマンドレットを使用したためです。そのビットを追加すると、列名が削除されます。それ以外の場合、コマンドはエラーを返します。

上記のコマンドをPowerShellISEにコピーして保存すると、スクリプトが作成されます。ただし、以下のスクリーンショットに示すように、個々のコマンドを実行することはできます。

上記のコマンドが実行され、PowerShellは何も起こらなかったかのようにプロンプ​​トに戻ります。ただし、コマンドのForEachループビットで指定した宛先フォルダーを開くと、PowerShellコマンドによってファイルがコピーされます。以下のスクリーンショットを参照してください…

フォルダ内のすべてのファイルタイプとすべてのサブフォルダをコピーする方法

フォルダ内のすべてのファイルタイプとすべてのサブフォルダをコピーする方法

これまで、このガイドでは、PowerShellを使用して単一のファイルをコピーする手順について説明してきました。さらに、このガイドでは、フォルダから複数のファイルをコピーする手順についても説明しています。

PowerShellファイルのコピーの優れた状況について説明しました。

ただし、特定のファイル拡張子を持つすべてのファイルをコピーする必要がある場合があります フォルダとそのすべてのサブフォルダから

twrpをフラッシュするためにodinを使用する

最後の例を続ける場合は、.logファイル拡張子を持つすべてのファイルをからコピーしたいとします。 C: Windows フォルダとそのすべてのサブフォルダ–単純に変更します Get-ChildItem このコマンドの一部:

$logfiles = Get-ChildItem C:Windows |  Where-Object  { $_.Name -like '*.log' } | Select-Object  FullName  ForEach ($logfile in $logfiles.  FullName  ) {Copy-Item $logfile -Destination 'D:Log Files'}

取得するには Get-ChildItem .logファイル拡張子を持つすべてのファイルを一覧表示するコマンド C: Windows およびそのすべてのサブフォルダ–追加します Get-ChildItem 呼び出されたコマンドパラメータ 再帰

これを念頭に置いて、私の新しいコマンドは次のようになります。

$logfiles = Get-ChildItem C:Windows -  Recurse  |  Where-Object  { $_.Name -like '*.log' } | Select-Object  FullName  ForEach ($logfile in $logfiles.  FullName  ) {Copy-Item $logfile -Destination 'D:Log Files'}

ポイントを家に帰すために、$ logfiles =ビットなしでGet-ChildItemコマンドを実行します。アクセスする権限がないファイルにアクセスしようとしているため、コマンドはエラーを返します。

フォルダ内のすべてのファイルタイプとすべてのサブフォルダをコピーする方法

このエラーを修正するには、PowerShellを管理者として開いてみます。同じコマンドを実行すると、いくつかの結果が返されます。

を含まなかった最後のコマンドとは異なり、 再帰 パラメータの場合、このコマンドはより多くのファイルを返します。これは、コマンドが最上位フォルダー内のすべてのファイルとそのすべてのサブフォルダー内のファイルを返したためです。

フォルダ内のすべてのファイルタイプとすべてのサブフォルダをコピーする方法

最後に、PowerShellを使用してフォルダー内のすべてのファイルとそのすべてのサブフォルダーをコピーするには、次のコマンドのようなコマンドを実行します。

フォルダの部分を変更することを忘れないでください。ソースフォルダーと宛先フォルダーのパスを太字にして、簡単に見つけて自分のものに変更できるようにしました。
$logfiles = Get-ChildItem  C:Windows  -Recurse |  Where-Object  { $_.Name -like '*.log' } | Select-Object FullName ForEach ($logfile in $logfiles.FullName) {Copy-Item $logfile -Destination '  D:Log Files  '}
このコマンドをPowerShellISEに保存してスクリプトとして実行する場合は、Get-ChildItemコマンドにErrorAction変数を追加することをお勧めします。 ErrorAction変数を使用すると、最終的なスクリプトは次のようになります。
$logfiles = Get-ChildItem  C:Windows  -Recurse -ErrorAction SilentlyContinue | Where-Object { $_.Name -like '*.log' } | Select-Object FullName ForEach ($logfile in $logfiles.FullName) {Copy-Item $logfile -Destination '  D:Log Files  '}

PowerShellでファイルを移動する方法

ファイルのコピーとは別に、PowerShellは 動く ファイル。違いは、ファイルを移動すると、そのファイルがソースフォルダーから削除されることです。

したがって、ファイルのコピーと移動がほぼ同じである場合は、このガイドで使用したのと同じコマンドを少し変更して使用できることを意味します。

簡単にするために、これまでこのガイドで説明したすべてのコマンドをリストしました。次に、コマンドごとに、 ファイルを移動する コマンドに相当します。

minecraft自動ジャンプをオフにする方法
先に進む前に、コマンドの唯一の違いはCopy-Itemビットであることに注意することが重要です。使用する代わりに コピーアイテム ファイルをコピーするには、ファイルを移動するには、 移動アイテム

PowerShellを使用して単一のファイルを移動する方法

PowerShellで単一のファイルをコピーするコマンドは次のとおりです。

Get-ChildItem 'D:G-DriveWork ToolsProducts PortalByte Count Tool.txt' |  Copy-Item  -Destination 'D:G-DriveWork ToolsProducts Portal 2'

ただし、ファイルを移動するには、代わりに次のコマンドを使用します。

Get-ChildItem 'D:G-DriveWork ToolsProducts PortalByte Count Tool.txt' |  Move-Item  -Destination 'D:G-DriveWork ToolsProducts Portal 2'

PowerShellを使用してフォルダー内のすべてのファイルタイプを移動する方法

すでに上で説明したように、フォルダ内のすべてのファイルタイプをコピーするコマンドは次のとおりです。

$logfiles = Get-ChildItem C:Windows | Where-Object { $_.Name -like '*.log' } | Select-Object FullName ForEach ($logfile in $logfiles.FullName) {  Copy-Item  $logfile -Destination 'D:Log Files'}

一方、ファイルを移動するには、代わりにこのコマンドを使用してください。

しない を変更せずに以下のコマンドを実行します C: Windows 部。コマンドを実行すると、重要なオペレーティングシステムファイルが移動し、コンピュータが不安定になる可能性があります。これらのコマンドは説明のみを目的としています。
$logfiles = Get-ChildItem C:Windows | Where-Object { $_.Name -like '*.log' } | Select-Object FullName ForEach ($logfile in $logfiles.FullName) {  Move-Item  $logfile -Destination 'D:Log Files'}

フォルダ内のすべてのファイルタイプとすべてのサブフォルダを移動する方法

最後に、以下のコマンドは、ソースフォルダーとそのすべてのサブフォルダー内のすべてのファイルをコピーします。

$logfiles = Get-ChildItem C:Windows -Recurse -ErrorAction SilentlyContinue | Where-Object { $_.Name -like '*.log' } | Select-Object FullName ForEach ($logfile in $logfiles.FullName) {  Copy-Item  $logfile -Destination 'D:Log Files'}

ファイルを移動するには、代わりにこのコマンドを使用してください。

$logfiles = Get-ChildItem C:Windows -Recurse -ErrorAction SilentlyContinue | Where-Object { $_.Name -like '*.log' } | Select-Object FullName ForEach ($logfile in $logfiles.FullName) {    Move-Item    $logfile -Destination 'D:Log Files'}

このガイドで説明されているPowerShellを使用してファイルをコピーおよび移動する方法がお役に立てば幸いです。

役に立ったと思ったら、親切に投票してください はい この投稿は以下の役立つ質問でした。

ただし、どの方法でもうまくいかなかった場合、または説明した方法以外のものが必要な場合は、をクリックしてください 番号 この投稿は以下の役立つ質問でした。次に、追加の詳細をお知らせください。読者のフィードバックを確認し、ガイドを更新して常にニーズに対応します。

または、このページの最後にある[返信を残す]フォームを使用して、質問したり、コメントを残したり、フィードバックを提供したりすることもできます。

最後に、PowerShell tech Sゾーンの詳細については、WindowsPowerShellハウツーガイドページにアクセスしてください。また、ホームページからの作業が非常に役立つ場合があります。