SEブログ

【PowerShell】基本的なコマンドレットの一覧について

こんにちは!

 

 

今回は、PowerShell のコマンドを書くにあたってまず覚えておいたほうが良いと思う内容を書きました。

基本的な内容ばかりですが、今後はよく使う内容になりますので、実際手で入力して覚えておくと良いかと思います。

 

 

 

コメントを書く場合

 

 

コマンドに補足説明(またはコメント)を書きたい場合があるかと思います。

例えば、このコマンドがどういう目的なのか、どういう処理なのかといった内容などです。

コメントを書きたい時は、先頭に #(シャープ)を入力します。

 

# ここにコメントを入力します。
Get-Service

 

 

複数行でコメントを書きたい時は、以下のように書きます。

 

<# コメントここから コメントここまで #>
Get-Service

 

 

 

ディレクトリの表示・移動

 

 

現在のディレクトリの場所を確認したい場合は、以下のコマンドを使います。

以降は、現在のディレクトリはカレントディレクトリという言葉に置き換えますね。

 

# カレントディレクトリを表示する
PS C:\Users\Administrator> Get-Location
Path 
---- 
C:\Users\Administrator

 

 

 

現在のディレクトリの場所から移動したい場合は、以下のコマンドを使います。

 

 
# カレントディレクトリを移動する
PS C:\Users\Administrator> Set-Location C:\temp\powershell
PS C:\temp\powershell>

 

 

 

現在の時刻を表示したい場合、以下のコマンドを使います。

 

# 現在の時刻を表示する
PS C:\Users\Administrator> Get-Date
2018年5月14日 10:13:12

 

 

 

カレントディレクトリにあるファイルやフォルダを表示する場合は、以下のコマンドを使います。

 

PS C:\temp\powershell> Get-ChildItem

ディレクトリ: C:\temp\powershell

Mode LastWriteTime Length Name 
---- ------------- ------ ---- 
d----- 2018/05/14 10:19 テストフォルダー1 
d----- 2018/05/14 10:19 テストフォルダー2 
-a---- 2018/05/14 10:20 7 practice_command.ps1

 

 

 

カレントディレクトリにあるファイルやフォルダと、フォルダ内にある全てのファイルやフォルダを表示する場合は、以下のコマンドを使います。

-Recurse は “再帰的” という意味になります。Google で検索すれば色々な説明が出てきますが、ここでは簡単に「木の幹から枝まで表示する」という表現にしておきます。

つまり、カレントディレクトリが木の幹とし、カレントディレクトリから下は枝として表示するという意味になります。

 

PS C:\temp\powershell> Get-ChildItem -Recurse

ディレクトリ: C:\temp\powershell

Mode LastWriteTime Length Name 
---- ------------- ------ ---- 
d----- 2018/05/14 10:26 テストフォルダー1 
d----- 2018/05/14 10:19 テストフォルダー2 
-a---- 2018/05/14 10:20 7 practice_command.ps1

ディレクトリ: C:\temp\powershell\テストフォルダー1

Mode LastWriteTime Length Name 
---- ------------- ------ ---- 
d----- 2018/05/14 10:27 サブフォルダー1 
d----- 2018/05/14 10:26 サブフォルダー2

ディレクトリ: C:\temp\powershell\テストフォルダー1\サブフォルダー1

Mode LastWriteTime Length Name 
---- ------------- ------ ---- 
-a---- 2018/05/14 10:26 0 サンプルファイル1.txt 
-a---- 2018/05/14 10:26 0 サンプルファイル2.txt

 

 

 

特定のフォルダのディレクトリを表示したい場合は、以下のコマンドを使います。

 

PS C:\temp\powershell> Get-ChildItem -Path ./テストフォルダー1

ディレクトリ: C:\temp\powershell\テストフォルダー1

Mode LastWriteTime Length Name 
---- ------------- ------ ---- 
d----- 2018/05/14 10:27 サブフォルダー1 
d----- 2018/05/14 10:26 サブフォルダー2

 

 

 

コンソールの表示

 

 

コンソールに表示したい場合は、以下のコマンドを使います。

例えば、単純に説明などを表示させたり、または何かの処理で選択肢 (1 , 2 , 3 ,4 ) を表示させて、選択したものを実行するといった場合などに使います。

 

PS C:\temp\powershell> Write-Output "コンソールに文字を表示する";
コンソールに文字を表示する

 

 

 

または以下のコマンドでも同じ結果が表示されます。

ここでは、「とりあえず同じ結果が表示できる」くらいの理解で良いのではないかと思います。

 

PS C:\temp\powershell> Write-Host"コンソールに文字を表示する";
コンソールに文字を表示する

 

 

コンソールに表示されている内容を消去したい場合は、以下のコマンドを使います。

 

PS C:\temp\powershell> Clear-Host

 

 

 

ファイルの処理

 

 

ファイル・フォルダのコピー

 

 

ファイルやフォルダを別のディレクトリにコピーしたい場合は、以下のコマンドを使います。

ここでは、テストフォルダー1 のサブフォルダー1 内にある、サンプルファイル1.txt を

テストフォルダー2 のサブフォルダー1 内にコピーします。

 

Copy-Item -Path .\テストフォルダー1\サブフォルダー1\サンプルファイル1.txt -Destination .\テストフォルダー2\サブフォルダー1

 

 

実行前

 

 

実行後

 

 

 

 

特定のフォルダ内にあるファイルやフォルダを全てコピーしたい場合は、以下のコマンドを使います。

ここでは、テストフォルダー1 のサブフォルダー2 内にある、全てのファイルを

テストフォルダー2 のサブフォルダー2 内にコピーします。-Recurse は先ほど出てきた内容と同じ意味です。「木の枝までコピーする」という意味になります。

 

Copy-Item -Path .\テストフォルダー1\サブフォルダー2\* -Destination .\テストフォルダー2\サブフォルダー2\ -Recurse

 

 

 

実行前

 

 

実行後

 

 

 

 

ファイル・フォルダの移動

 

 

ファイルやフォルダを別のディレクトリに移動したい場合は、以下のコマンドを使います。

ここでは、テストフォルダー1 のサブフォルダー1 内にある、サンプルファイル1.txt を

テストフォルダー2 のサブフォルダー1 内に移動します。

 

Move-Item -Path .\テストフォルダー1\サブフォルダー1\サンプルファイル1.txt -Destination .\テストフォルダー2\サブフォルダー1

 

 

 

実行前

 

 

実行後

 

 

 

 

ファイルやフォルダを別のディレクトリに移動して別名にしたい場合は、以下のコマンドを使います。

ここでは、テストフォルダー1 のサブフォルダー1 内にある、サンプルファイル2.txt を

テストフォルダー2 のサブフォルダー1 内に移動し、別のファイル名に変更します。

 

Move-Item -Path .\テストフォルダー1\サブフォルダー1\サンプルファイル2.txt -Destination .\テストフォルダー2\サブフォルダー1\新サンプルファイル1.txt

 

 

 

実行前

 

 

 

実行後

 

 

 

ファイル・フォルダの名前変更

 

 

ファイルやフォルダを別のファイル名・フォルダ名に変更したい場合は、以下のコマンドを使います。

ここでは、テストフォルダー1 のサブフォルダー2 を別のフォルダ名に変更します。

 

Rename-Item -Path .\テストフォルダー1\サブフォルダー2\ -NewName 新サブフォルダー1

 

 

 

実行前

 

 

 

実行後

 

 

 

ファイル・フォルダの削除

 

ファイルやフォルダを削除する場合は、以下のコマンドを使います。

ここではテストフォルダー2 のサブフォルダー1 内にある、サンプルファイル1 を削除します。

Remove-Item -Path .\テストフォルダー2\サブフォルダー1\サンプルファイル1.txt

 

実行前

 

実行後

 

 

 

フォルダとその中にあるファイルを全てを削除する場合は、以下のコマンドを使います。

 

Remove-Item -Path .\テストフォルダー2\サブフォルダー2 -Recurse

 

 

 

実行前

 

 

 

実行後

 

 

 

 

その他のコマンド

 

 

コマンドの詳細を見たい場合は、以下のコマンドで確認できます。

 

Get-Help Remove-Item -Detailed

名前
Remove-Item
 
構文
Remove-Item [-Path] <string[]> [<CommonParameters>]
Remove-Item [<CommonParameters>]
 
パラメーター
-Confirm
-Credential <pscredential>
-Exclude <string[]>
-Filter <string>
-Force
-Include <string[]>
-LiteralPath <string[]>
-Path <string[]>
-Recurse
-Stream <string[]>
-UseTransaction
-WhatIf
 
<CommonParameters>
このコマンドレットは、次の共通パラメーターをサポートします: Verbose、
Debug、ErrorAction、ErrorVariable、WarningAction、WarningVariable、
OutBuffer, PipelineVariable、および OutVariable。詳細については、
about_CommonParameters (https://go.microsoft.com/fwlink/?LinkID=113216) 
を参照してください。

エイリアス
ri
rm
rmdir
del
erase
rd

注釈
Get-Help を実行しましたが、このコンピューターにこのコマンドレットのヘルプ ファイルは見つかりませんでした。ヘルプの一部だけが表示されています。
-- このコマンドレットを含むモジュールのヘルプ ファイルをダウンロードしてインストールするには、Update-Help を使用してください。
-- このコマンドレットのヘルプ トピックをオンラインで確認するには、「Get-Help Remove-Item -Online」と入力するか、
https://go.microsoft.com/fwlink/?LinkID=113373 を参照してください。

 

 

 

今まで実行したコマンドの履歴を見たい場合は、以下のコマンドで確認できます。

 

PS C:\temp\powershell> Get-History
Id CommandLine 
-- ----------- 
1 Get-ChildItem 
2 Set-Location C:\temp\powershell 
3 Get-ChildItem 
4 Get-ChildItem -Recurse 
5 Get-ChildItem -Path ./テストフォルダー1 
...
28 Rename-Item -Path .\テストフォルダー1\サブフォルダー2\ -NewName 新サブフォルダー1 
29 Remove-Item -Path .\テストフォルダー2\サブフォルダー1\サンプルファイル1.txt 
30 Remove-Item -Path .\テストフォルダー2\サブフォルダー2 -Recurse 
31 Get-Help Remove-Item 
32 Get-Help Remove-Item -Detailed 

 

 

 

今まで実行したコマンドの履歴を消去したい場合は、以下のコマンドを実行します。

 

PS C:\temp\powershell> Clear-History

Id CommandLine 
-- ----------- 
34 Clear-History

 

 

 

以上、結構な量になりましたので、早見表のような形で、以下に纏めておきました。

 

コマンドレット 説明
Get-Location 現在のディレクトリの場所を確認する
Set-Location 現在のディレクトリの場所から移動する
Get-Date 現在の時刻を表示する
Get-ChildItem カレントディレクトリにあるファイルやフォルダを表示する
Get-ChildItem -Recurse カレントディレクトリにあるファイルやフォルダと、フォルダ内にある全てのファイルやフォルダを表示する
Get-ChildItem -Path 特定のフォルダのディレクトリを表示する
Write-Output "コンソールに文字を表示する内容" コンソールに文字を表示する
Write-Host "コンソールに文字を表示する" コンソールに文字を表示する
Clear-Host コンソールに表示されている内容を消去する
Copy-Item -Path コピー元のパス -Destination コピー先のパス ファイルやフォルダを別のディレクトリにコピーする
Copy-Item -Path コピー元のパス -Destination コピー先のパス -Recurce フォルダとその下のファイルやフォルダ含めた全てを別のディレクトリにコピーする
Move-Item -Path 移動元のパス -Destination 移動先のパス ファイルやフォルダを別のディレクトリに移動する
Move-Item -Path 移動元のパス\ファイル名 -Destination 移動先のパス\変更したいファイル名 ファイルを別のディレクトリに移動してファイル名を変更する
Rename-Item フォルダまたはファイル名 -NewName 変更先のフォルダ名またはファイル名 ファイルやフォルダを別のファイル名・フォルダ名に変更する
Remove-Item -Path フォルダまたはファイル名 ファイルやフォルダを削除する
Remove-Item -Path フォルダ -Recurce フォルダとその中にあるファイルを全てを削除する
Get-Help Remove-Item -Detailed  コマンドの詳細を見る
Get-History  コマンドの履歴を見る
Clear-History  コマンドの履歴を削除する

 

 

 

いかがでしょうか。主にディレクトリ操作とファイルの処理の内容になりましたが、お役に立てれば幸いです。

 

では最後までお読みいただきありがとうございました!

 

 

おすすめの本はこちら ↓↓↓