Windowsのポチポチ業務(マウスを使った業務)を爆速化するために、PowerShellを使った効率化の方法をお伝えしています。
前回の記事はこちらです。
前回はPowerShellのようなCUI(コマンドユーザーインタフェース)=文字でコンピュータを操作するときに重要なディレクトリの考え方と、その移動方法についてご説明しました。
コマンドレットとは、PowerShellに用意されているWindowsを操作する機能をまとめた命令のことです。
今回は、そのコマンドレットの基本的な構文と、コマンドレットに必要な情報を渡したり、その働きを変えるために使われるパラメータについてご説明いたします。
それではいってみましょう!
コマンドレット
冒頭でも説明しましたが、コマンドレットとはWindowsを操作する機能をまとめた命令のことです。
連載の一番初めの記事
でも説明していますが、コマンドレットは
「Get-ChildItem」 → Get=取得する + ChildItem=子アイテム
のように動詞-名詞の形式で直感的に理解しやすく、またよく使う機能がまとめられているものです。
またPowerShellではコマンドレットに関わらず大文字小文字を区別しません。
Get-ChildItemをget-childitemと記載しても同じように実行されます。
PowerShellのヘルプなどでもそうですが、コマンドレットはデフォルトでキャメル記法(単語の先頭の文字を大文字にする記法)を使用しています。
そのため、当記事でもキャメル記法を使って表記していますが、小文字で入力しても実行可能なことは頭に入れておいてください。
コマンドレットの基本形
コマンドレットは「Get-ChildItem」のように単体で使えますが、パラメータと呼ばれる値と組み合わせて使用することが多いです。
パラメータはコマンドレットに必要な情報を渡したり、その働きを変える機能をもちます。
以下のような構文で書きます。基本形なので覚えてくださいね。
「-」ハイフンをつけることでPowerShellはパラメータであることを認識します。パラメータのハイフンは付け忘れないように注意してください。
New-Itemを使ってみる
「New-Item」というファイルやディレクトリを作成するコマンドレットで、パラメータを指定する例をお見せします。
New-Itemでファイルを作成する
さっそくNew-Itemでファイルを作成してみます。
基本形はこのようになります。
- コマンドレット:New-Item
- パラメータ:-Path
- パラメータの値:ディレクトリ名\ファイル名(今回はsamle\sample.txtとします。)
となっていますね。
PowerShellを立ち上げて、コマンドレットを実行すると
ディレクトリ「C:\Users\terad\sample」配下に「sample.txt」という名前のファイルが作成されました。
エクスプローラでも確認してみましょう。
確かに「sample.txt」ができていますね。
パラメータ
コマンドレットの基本的な構文を理解したところで、パラメータについて詳しく見ていきます。
-Pathパラメータ
-Pathパラメータについて詳しく説明します。
-Pathの設定値と注意点
-Pathには「sample\sample.txt」のようにディレクトリを含んだファイル名を指定することができます。
また、ディレクトリを含まずに「sample.txt」とファイル名だけ指定することも可能です。その場合はカレントディレクトリにファイルが作成されます。
存在しないディレクトリを指定すると…
このようにエラーになるので、-Pathには作成済のディレクトリを指定するようにしてください。
-Pathは複数指定できる
-Pathは文字列の「配列」を使い、複数指定することができます。
配列とは、同じ型(文字列など)のデータをまとめて扱う方法のことです。
配列の各データを要素と呼び、要素はPath[0]、Path[1]、Path[2]、…というように添え字と呼ばれる数字で指定します。
このようにカンマ区切りで複数のディレクトリ名とファイル名を指定することができます。
実際には見えませんが、Path[0]に「sample1\a.txt」、Path[1]に「sample2\b.txt」が入力されていると思ってください。
-Path以外のパラメータ
New-Itemのパラメータは-Path一つではなく、複数のパラメータが存在し、組み合わせて指定することが可能です。
-Path以外の主要なパラメータについてご説明します。
-Name
-Nameは-Path同様に作成するファイルの「ディレクトリ名\ファイル名」を指定します。
基本的には-Pathと同じですが、-Pathを補完するために使うことが多いです。
このように-Pathに「sample」、-Nameに「sample.txt」と指定すると、それぞれの文字列が合体して「sample\sample.txt」となり、「sample」ディレクトリに、「sample.txt」というファイルが作成されます。
-ItemType
-ItemTypeを使えばディレクトリなどファイル以外のアイテムを作ることができます。
ItemTypeにはfile、Directoryなどが指定できます。指定しない場合はファイルが作成されます。
-Force
-Pathには存在するディレクトリを指定しないとエラーとなるとご説明しましたが、-Forceを使えばディレクトリが存在しない場合に自動作成します。
またファイルを作成する場合、すでにある同じ名前のファイルを上書くことができます。
このように-Forceの場合はパラメータだけで設定値は必要ありません。
パラメータの種類
パラメータは、必須とオプションの2種類に大別されます。
必須パラメータ
コマンドレットで必ず入力が必要なパラメータのことです。
-Path、-Nameが必須のパラメータとなります。
-Path、-Nameのいずれかは必ず指定が必要です。
オプションパラメータ
オプションパラメータには、-ItemTypeや-Forceなどがあります。
このように複数のパラメータを並べて記載することができます。
オプションのパラメータが指定されない場合は、デフォルト値がコマンドレットに渡されます。
必須パラメータを入力しなかった場合
必須パラメータの入力しなかった場合でも、PowerShellでは入力を促すメッセージを出してくれます。
New-Itemを単独で入力してみます。
このように「次のパラメータを指定してください。」のメッセージのあとに必須パラメータである「Path[0]:」が表示されています。
さきほどご説明した配列の形式で表示されていますね。
Pathの後ろに[0]とありますが、配列の1つめの要素にディレクトリ名\ファイル名を入力しなさいということです。
Path[0]に「sample\sample.txt」を入力してエンターを押すと…
Path[1]が表示され、次の要素への入力を促します。
Pathの指定が終わりであれば、何も入力せずエンターを押し、Pathの配列の入力が終わったことをPowerShellに通知します。
無事、ファイルが作成されました。
まとめ
いかがだったでしょうか。今回はNew-Itemを例にコマンドレットの基本的な構文とパラメータについて詳しく解説しました。
コマンドレットは単体だけではなく、絶対に必要な情報を渡す必須パラメータと、様々に働きを変えてくれるオプションパラメータを組み合わせて使うんですね。
次回はコマンドレットのパラメータについて自分で調べられるようになるため、オンラインヘルプの参照方法についてお伝えします!
最後までお読みいただきありがとうございました!
連載目次:Windowsのポチポチ業務を爆速化するPowerShell
Windowsのポチポチ業務(マウスを使った業務)を爆速化するために、PowerShellを使った効率化の方法をお伝えしています。- Windowsのポチポチ業務を爆速化するPowerShell、はじめのハードルぐーーんと下げてみます!
- Windowsのポチポチ業務を爆速化するPowerShell、キーボードを使わずササっと起動する方法
- Windowsのポチポチ操作を爆速化するPowerShellの絶対条件!ディレクトリとその移動をマスターしよう!
- Windowsのポチポチ業務を爆速化するPowerShell、コマンドレットを腹の底から理解する!
- Windowsのポチポチ業務を爆速化するPowerShell、オンラインヘルプでコマンドレットを使い倒す!
- Windowsのポチポチ業務を爆速化するPowerShell、統合開発環境ISEを紹介します!
- Windowsのポチポチ業務を爆速化するPowerShell、スクリプトを実行するための準備
- Windowsのポチポチ業務を爆速化するPowerShell、フォルダを作るスクリプトの作り方
- Windowsのポチポチ業務を爆速化するPowerShell、if文を使いフォルダの有無で処理を分岐させる方法
- Windowsのポチポチ業務を爆速化するPowerShell、ForEach-Objectで配列の全要素を処理する方法
- Windowsのポチポチ業務を爆速化するPowerShell、パイプラインを使いコマンドレット間で値を引き渡す方法
- Windowsのポチポチ業務を爆速化するPowerShell、ファイルを別フォルダにコピーし名称を変更する方法
- Windowsのポチポチ業務を爆速化するPowerShell、ファイル名を変更する方法
- Windowsのポチポチ業務を爆速化するPowerShell、正規表現で複雑なファイル名変更をする方法
- Windowsのポチポチ業務を爆速化するPowerShell、タスクスケジューラでスクリプトを決まった日時に起動する方法
- Windowsのポチポチ業務を爆速化するPowerShell、ファイルをバックアップするスクリプトの作り方
- Windowsのポチポチ業務を爆速化するPowerShell、関数を作ってスクリプトから呼び出す方法
- Windowsのポチポチ業務を爆速化するPowerShell、関数をコンソールで登録して呼び出す方法
- Windowsのポチポチ業務を爆速化するPowerShell、短いワードでサッと関数を呼び出すエイリアスの使い方
- Windowsのポチポチ業務を爆速化するPowerShell、関数やエイリアス保存場所のドライブを紹介します
- Windowsのポチポチ業務を爆速化するPowerShell、elseifで日付の元号を判定する方法
- Windowsのポチポチ業務を爆速化するPowerShell、日付を操るDatetime型
コメント
お疲れ様です。プログラミングは初めてですが、このサイトを起点としてpowershellの勉強をしてきたいと思います。
誤字報告です。-Pathは複数指定できる の中の
New-Item -Path samle1\a.txt,sample2\b.txt
sample がsamleになっていました。
MAZさん
コメントありがとうございます。
執筆したテラドと申します。
ご報告いただいた誤字は修正させていただきました。
ありがとうございます。
当記事でpowershellの学習を始めてくださった…嬉しいとともに執筆の励みになります!!
引き続き、わかりやすい記事を提供して参りますので今後ともよろしくお願いいたします。