Windowsでフォルダーやファイルの操作をコマンドで行う方法

Windowsでフォルダーやファイルの操作をコマンドで行う方法

Windowsでフォルダーやファイルの操作を行う(新規作成、コピー、移動、削除、名前の変更など)場合、マウス操作で行うことが多いですが、操作対象のフォルダーやファイルの数が多い場合は、コマンドで操作することで、効率よく作業を行うことができます。

そこでここでは、Windowsでフォルダーやファイルの操作をWindowsコマンドやPowerShellで行う方法を紹介します。

なお、コマンドの詳しい使い方を知りたい方のために、それぞれのコマンドのMicrosoft公式リファレンスページへのリンクも記載しています。

この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
Windows 10 Pro 64bit22H2

フォルダーやファイルの一覧を取得する

Windowsコマンドの場合

Windowsコマンドでフォルダーやファイルの一覧を取得するときは、dirコマンドを使用します。

dirコマンドの使用例は、次のとおりです。

カレントフォルダー以下を再帰的に表示する:

> dir /s

カレントフォルダー以下の拡張子が「.txt」のファイルのみを表示する:

> dir *.txt /s

dir | Microsoft Learn

PowerShellの場合

PowerShellでフォルダーやファイルの一覧を取得するときは、Get-Childitemコマンドレットを使用します。

Get-Childitemコマンドレットの使用例は、次のとおりです。

カレントフォルダー以下を再帰的に表示する:

PS> Get-Childitem -Recurse

カレントフォルダー以下の拡張子が「.txt」のファイルのみを表示する:

PS> Get-Childitem *.txt -Recurse

Get-ChildItem - PowerShell | Microsoft Learn

カレントフォルダーを移動する

Windowsコマンドの場合

Windowsコマンドでカレントフォルダーを移動するときは、cdコマンドを使用します。

cdコマンドの使用例は、次のとおりです。

カレントフォルダーをC:\Windowsに変更する:

> cd C:\Windows

異なるドライブのフォルダーへ移動するときは「/d」オプションが必要になります。たとえば、カレントフォルダーがC:\Windowsのときに、カレントフォルダーをD:\Testに移動するときは、次のようにコマンドを実行します。

> cd /d D:\Test

cd | Microsoft Learn

PowerShellの場合

PowerShellでカレントフォルダーを移動するときは、Set-Locationコマンドレットを使用します。

Set-Locationコマンドレットの使用例は、次のとおりです。

カレントフォルダーをC:\Windowsに変更する:

PS> Set-Location -Path C:\Windows

Set-Location - PowerShell | Microsoft Learn

ファイルの内容を表示する

Windowsコマンドの場合

Windowsコマンドでテキスト形式ファイルの内容を表示するときは、typeやmoreコマンドを使用できますが、typeコマンドは1画面ごとにスクロールすることができないので、通常はmoreコマンドを使用った方法がおすすめです。

moreコマンドの使用例は、次のとおりです。

file1.txtファイルの内容を表示する:

>more file1.txt

また、moreコマンドはコマンドの出力を1ページずつ表示したいときにも利用できます。たとえば、dirコマンドの出力を1ページずつ表示するときは、次のように実行します。

> dir /s /b c:\ | more

なお、moreコマンドでは、スペースキーを押せば次のページにスクロールし、エンターキーを押せば1行ずつスクロールでき、表示を終了するときは「Q」キーを押すか「Ctrl+C」キーを押します。

more | Microsoft Learn

PowerShellの場合

PowerShellでテキスト形式ファイルの内容を表示するときは、Get-Contentコマンドレットを使用します。

Get-Contentコマンドレットの使用例は、次のとおりです。

file1.txtファイルの内容を表示する:

PS> Get-Content file1.txt

Get-Content - PowerShell | Microsoft Learn

フォルダーやファイルをコピーする

Windowsコマンドの場合

Windowsコマンドでフォルダーやファイルをコピーするときは、copyやxcopy、robocopyコマンドが使用できますが、通常は同期や再試行、ログ機能なども備えたrobocopyコマンドを使った方法がおすすめです。

robocopyコマンドでフォルダーやファイルをコピーするときの実行例は、次のとおりです。

F:¥folder1フォルダーのsample.txtをF:¥folder2フォルダーにコピーする:

> robocopy F:¥folder1 F:¥folder2 sample.txt

F:¥folder1フォルダーを丸ごとF:¥folder2フォルダーにコピーする:

> robocopy F:¥folder1 F:¥folder2 /e

なお、robocopyコマンドではファイルの名前を変えてコピーすることができないので、そのようなときはcopyコマンドを使用します。たとえば、smaple.txtファイルをsample99.txtという名前に変更してコピーするときは、以下のようにコマンドを実行します。

> copy sample1.txt smaple99.txt

robocopy | Microsoft Learn

robocopyコマンドで高速にファイルをコピーするためのテクニック
ここでは、Windows 10のrobocopyコマンドで、高速化に役立つオプションや、高速にコピーするための実行方法について紹介します。

PowerShellの場合

PowerShellででフォルダーやファイルをコピーするときは、Copy-Itemコマンドレットを使用します。

robocopyコマンドでフォルダーやファイルをコピーするときの実行例は、次のとおりです。

F:¥folder1フォルダーのsample.txtをF:¥folder2フォルダーにコピーする:

PS> Get-ChildItem F:¥folder1\sample.txt -File | Copy-Item -Destination F:¥folder2\

F:¥folder1フォルダーを丸ごとF:¥folder2フォルダーにコピーする:

PS> Copy-Item F:¥folder1 F:¥folder2 -Recurse

Copy-Item - PowerShell | Microsoft Learn

フォルダーやファイルを移動する

Windowsコマンドの場合

Windowsコマンドでフォルダーやファイルを移動するときは、moveやrobocopyコマンドが使用できますが、moveコマンドはドライブをまたいだ移動ができないので、通常はrobocopyコマンドを使った方法がおすすめです。

robocopyコマンドでフォルダーやファイルを移動するときの実行例は、次のとおりです。

F:¥folder1フォルダーのsample.txtをF:¥folder2フォルダーに移動する:

> robocopy F:¥folder1 F:¥folder2 sample.txt /mov

F:¥folder1フォルダー内のすべてのフォルダーとファイルをF:¥folder2フォルダーに移動する:

> robocopy F:¥folder1 F:¥folder2 /s /move /e

PowerShellの場合

PowerShellでフォルダーやファイルを移動するときは、Move-Itemコマンドレットを利用します。

Move-Itemコマンドレットでフォルダーやファイルを移動するときの実行例は、次のとおりです。

F:¥folder1フォルダーのsample.txtをF:¥folder2フォルダーに移動する:

PS> Get-ChildItem F:¥folder1\sample.txt -File | Move-Item -Destination F:¥folder2

F:¥folder1フォルダー内のすべてのフォルダーとファイルをF:¥folder2フォルダーに移動する:

PS> Move-Item F:¥folder1 F:¥folder2

Move-Item - PowerShell | Microsoft Learn

フォルダーやファイルを削除する

Windowsコマンドの場合

Windowsコマンドでフォルダーを削除するときはrd(rmdir)コマンドを使用し、ファイルを削除するときはdelコマンドを使用します。

rdコマンドの使用例は、次のとおりです。

F:¥folder1フォルダーを中身ごと削除する:

> rd /s F:¥folder1

delコマンドの使用例は、次のとおりです。

F:¥folder1\file1.txtファイルを削除する:

> del F:¥folder1\file1.txt

F:¥folder1フォルダー内のすべてのファイルを削除する:

> del F:¥folder1

なお、delコマンドやrdコマンドでファイルやフォルダーを削除すると、ごみ箱には移動されずに消去されるのでご注意ください。

rmdir | Microsoft Learn

del | Microsoft Learn

PowerShell

PowerShellでフォルダーやファイルを削除するときは、Remove-Itemコマンドレットを使用します。

Remove-Itemコマンドレットの使用例は、次のとおりです。

F:¥folder1フォルダーを中身ごと削除する:

PS> Remove-Item F:\folder1 -Recurse

F:¥folder1\file1.txtファイルを削除する:

PS> Get-ChildItem F:¥folder1\file1.txt -File | Remove-Item

F:¥folder1フォルダー内のすべてのファイルを削除する:

> Get-ChildItem F:\folder1 -File | Remove-Item

Remove-Item - PowerShell | Microsoft Learn

フォルダーやファイルの名前を変更する

Windowsコマンドの場合

Windowsコマンドでフォルダーやファイルの名前を変更するときは、renやmoveコマンドが使用できますが、renコマンドは使いづらいため、moveコマンドを使った方法がおすすめです。

moveコマンドでフォルダーやファイルの名前を変更するときの実行例は、次のとおりです。

file1.txtファイルの名前をfile99.txtに変更する:

> move file1.txt file99.txt

folder1フォルダーの名前をfolder77に変更する:

> move folder1 folder77

move | Microsoft Learn

PowerShell

PowerShellでフォルダーやファイルの名前を変更するときは、Rename-Itemコマンドレットを使用します。

Rename-Itemコマンドレットでフォルダーやファイルの名前を変更するときの実行例は、次のとおりです。

file1.txtファイルの名前をfile99.txtに変更する:

PS> Rename-Item file1.txt file99.txt

folder1フォルダーの名前をfolder77に変更する:

PS> Rename-Item folder1 folder77

Rename-Item - PowerShell | Microsoft Learn

フォルダーを新規作成する

Windowsコマンドの場合

Windowsコマンドで新しいフォルダーを作成するときは、md(mkdir)コマンドを使用します。

mdコマンドの使用例は、次のとおりです。

folder1というフォルダーを作成する:

> md folder1

また、フォルダーの階層を指定すれば、途中の階層のフォルダーを一気にに作成することができます。たとえば、以下のように実行すると途中の階層である「aa」「bb」「cc」「dd」フォルダーを一気に作成できます。

> md d:\aa\bb\cc\dd\ee

mkdir | Microsoft Learn

PowerShell

PowerShellでフォルダーを作成するときは、New-Itemコマンドレットを使用します。

New-Itemコマンドレットの使用例は、次のとおりです。

folder1というフォルダーを作成する:

PS> New-Item folder1 -type directory

なお、New-Itemコマンドレットもmkdirコマンドと同じように、フォルダーの階層を指定すれば、途中の階層のフォルダーを一気に作成できます。

New-Item - PowerShell | Microsoft Learn

テキストファイルを結合(連結)する

Windowsコマンドの場合

Windowsコマンドでテキストファイルを結合(連結)するときは、copyコマンドを使った方法や、typeコマンドとリダイレクトを組み合わせた方法が使用できます。

copyコマンドでファイルを結合する実行例は、次のとおりです。

file1、file2、file3を結合してnewfileというファイルを作成する:

> copy /b file1.txt+file2.txt+file3.txt newfile.txt

カレントフォルダーのテキストファイルをすべて結合する:(結合順はファイル名順となります)

> copy /b *.txt newfile.txt

typeコマンドとリダイレクトを組み合わせてファイルを結合するときは、次のように実行します。

> type file1.txt file2.txt file3.txt >newfile.txt

copy | Microsoft Learn

type | Microsoft Learn

PowerShell

PowerShellでテキストファイルを結合(連結)するときは、Get-ContentコマンドレットとSet-Contentコマンドレットを組み合わせた方法が使用できます。

file1、file2、file3を結合してnewfileというファイルを作成する:

PS> Get-Content file1.txt, filee2.txt, file3.txt | Set-Content newfile.txt

カレントフォルダーのテキストファイルをすべて結合する:(結合順はファイル名順となります)

PS> Get-Content *.txt | Set-Content newfile.txt

Set-Content - PowerShell | Microsoft Learn

文字列を検索する

Windowsコマンドの場合

Windowsコマンドでテキストやテキストファイルから文字列を検索するときは、findやfindstrコマンドが使用でき、正規表現を使った検索もできるfindstrコマンドがおすすめです。

fidstrコマンドで文字列を検索する実行例は、次のとおりです。

file1.txtかから「aaa」という文字列を検索する:

> findstr "aaa" file1.txt

file1.txtかから「aaa」という文字列で始まる行を正規表現を使って検索する:

> findstr /r /c "^aaa" file1.txt

PowerShell

PowerShellでテキストやテキストファイルから文字列を検索するときは、Select-Stringコマンドレットを使用します。

Select-Stringコマンドレット文字列を検索する実行例は、次のとおりです。

file1.txtかから「aaa」という文字列を検索する:

> Select-String file1.txt -Pattern 'aaa' -Encoding oem

なお、Select-Stringコマンドレットの「-Pattern」オプションには正規表現も指定できます。

Select-String - PowerShell | Microsoft Learn

あとがき

コマンドを使ったフォルダーやファイルの操作は、多数のフォルダーやファイルを一括で操作したいときに効果を発揮します。

ご活用あれ。