PowerShell を使用したファイルとフォルダーの移動
- PowerShell を使用してファイルまたはフォルダーが存在するかどうかを確認する
- PowerShell を使用したファイルとフォルダーの作成
- PowerShell を使用したファイルとフォルダーの移動
ファイルとフォルダーの移動は、Windows オペレーティング システム、またはおそらくすべてのオペレーティング システムを使用する場合の基本的な操作です。 ファイルやフォルダーを画面にドラッグ アンド ドロップするだけで、1つずつまたは一括で転送できますが、多くの特定のファイル (特定のファイル形式のファイルなど) のみを移動する必要がある場合は、スクリプトを検討する必要があります。
この記事では、一括修復のために PowerShell スクリプトを使用してファイルとディレクトリを移動するときに重要なコマンドレットについて説明します。
PowerShell を使用してファイルまたはフォルダーが存在するかどうかを確認する
Test-Path
コマンドは、ファイルまたはディレクトリ パスが存在するかどうかに応じて True
または False
を返すネイティブの PowerShell 組み込みコマンドレットです。 単一のファイルが存在するかどうかを照会する必要がある場合は、Test-Path
PowerShell コマンドを使用できます。
デモンストレーションとして、現在の作業ディレクトリにファイル (test.txt)
を作成するか、他の既存のファイルを選択します。 テスト ファイルを選択したら、パス (C:\Temp\PS) とファイル名 (test.txt)
を置き換えて、以下のコマンドを実行します。
Test-Path
コマンドは、実行時にブール値を返します。
指図:
Test-Path C:\Temp\PS\test.txt
上記の例では、ファイル (test.txt)
が存在する場合、コマンドは True
値を返します。 それ以外の場合は、コンソールに False
値が表示されます。
PowerShell を使用したファイルとフォルダーの作成
Windows PowerShell New-Item
コマンドは、ファイルとディレクトリの両方を作成します。 以下は、Windows PowerShell New-Item
コマンドレットを使用してファイルとフォルダーを作成する 2つの例です。
指図:
# Create a Folder
New-Item -ItemType 'Directory' -Name 'C:\Temp\PS'
# Create a File
New-Item -ItemType 'File' -Name 'Test.txt' -Path '.\PS'
PowerShell を使用したファイルとフォルダーの移動
PowerShell のファイル移動コマンド Move-Item
コマンドレットは、単一のファイルまたはディレクトリを移動するために機能し、ある場所から次の場所にコンテンツをすばやく転送するのに役立つフィルタリング機能を提供します。
以下の例では、以前に作成したファイル TestFile.txt
を親ディレクトリに移動します。 ..
の構文を使用して現在の場所から親ディレクトリを示し、Windows PowerShell Move-Item
コマンドを使用してファイルを移動します。
指図:
Move-Item -Path '.\TestFile.txt' -Destination '..'
Move-Item
コマンドを使用して、ファイルを移動できるだけでなく、フォルダーを移動することもできます。
まず、移動する必要があるフォルダーへの -Path
パラメーターの値を指定する必要があります。 -Path
パラメータからファイル拡張子を削除したことに注意してください。
指図:
Move-Item -Path '.\PSScripts` -Destination '..'
おそらく、作業ディレクトリの直接の親ではないフォルダーにファイルとフォルダーを転送したいと思うでしょう。 次に、-Destination
パラメーターにカスタム ディレクトリを指定できます。
指図:
Move-Item -Path '.\PSScripts` -Destination 'C:\Temp'
-Destination
パラメーターで指定された宛先フォルダーが存在しない場合、スクリプトはエラーをスローします。 Move-Item
コマンドレットを使用する際の注意点は、移動先のディレクトリが存在しない場合、新しいディレクトリが作成されないことです。
これを修正するには、前述の Test-Path
および New-Item
コマンドを使用できます。 以下のスクリプト ブロックでは、最初に宛先パスが存在するかどうかを確認します。
フォルダーが存在しない場合、スクリプトは最初にフォルダーを作成します。 作成されると、ファイルまたはフォルダーの転送が開始されます。
コード:
$current_folder = "C:\Temp\PS"
$new_folder = "C:\PS\PSScripts"
if (Test-Path -path $new_folder) {
Move-Item -Path $current_folder -Destination $new_folder
}else{
New-Item -ItemType 'Directory' -Name $new_folder
Move-Item -Path $current_folder -Destination $new_folder
}
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn