エンジニアの転職を支援するFEnetインフラのテックブログ。ネットワークなどのITインフラ情報を中心に発信中。

  1. FEnetインフラ
  2. FEnetテックマガジン
  3. エンジニア
  4. 誰でもわかるPowerShell入門!リダイレクトやスクリプト作成方法も紹介!

誰でもわかるPowerShell入門!リダイレクトやスクリプト作成方法も紹介!

  • エンジニア
  • テクノロジー
公開日時:   更新日時:
誰でもわかるPowerShell入門!リダイレクトやスクリプト作成方法も紹介!
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>

    PowerShellとは?

    PowerShellはMicrosoftが開発したシェル機能です。WindowsにはいわゆるDOS窓と言われるコマンドプロンプトが昔からありますが、それのパワーアップ版のようなものです。Windows 10に最初から入っているので、すぐに使えるのが大きな特長です。

    PowerShellは2006年にオープンソースとなり、Windows以外でも自由に利用できるようになりました。それでも現状はWindows 10での利用が主になっています。

    こちらは入門記事なります。是非ご覧ください。
     

     

    PowerShell入門の第一歩

    ではPowerShell入門を開始しましょう。まずはWindows 10のスタートメニューのWindows PowerShellのフォルダから「Windows PowerShell」を実行します。ウィンドウが開いて、

    PS C:\Users\(ユーザー名)>

    というプロンプトが表示されれば、コマンドを入力して使うことが出来ます。入門として、最初はユーザ名のフォルダにあるファイル一覧を見てみましょう。

    Get-ChildItem

    と入力してEnterキーを押してください。

    Get-ChildItemでファイル一覧を取得

    すると以下のように現在のユーザ名フォルダの一覧が出てきます。ディレクトリはフォルダと同じ意味です。

    ディレクトリ: C:\Users\(ユーザー名)

    Mode LastWriteTime Length Name
    ---- ------------- ------ ----
    d-r--- 2020/11/12 8:44 3D Objects
    d-r--- 2020/11/12 8:44 Contacts
    d-r--- 2020/11/15 11:21 Desktop
    d-r--- 2020/11/12 8:44 Documents
    d-r--- 2020/11/12 8:44 Downloads

    Get-ChildItemでは指定した場所のファイル一覧も見られる

    指定した場所のファイル一覧を見ることもできます。例えば以下のようにすればCドライブのtestフォルダの中身を見られます。

    Get-ChildItem c:\test

    なおPowerShellで↑のキーを押すと前回入力したコマンドが表示されます。↑を押すたびに前のコマンドが順次表示されます。↓を押せば戻ります。こういったシェルでは一般的な動作ですが、便利なので覚えておきましょう。

    パイプラインを活用しよう

    PowerShellにはパイプラインと言う重要な機能があります。これを使いこなすことでPowerShellを使う意味が出てきます。以下の|がパイプラインです。

    Get-ChildItem | Out-Host -Paging

    このコマンドを実行すると、ファイル一覧の結果をページで区切って表示してくれます。パイプラインの|は左のコマンドの出力を右のコマンドに受け渡します。これを使うことで複数のコマンドをつなげることができるのです。

    リダイレクトはとても便利

    もう一つ、PowerShellにはリダイレクトという便利な機能があります。以下を実行すると、

    Get-ChildItem > files.txt

    テキストファイルにファイル一覧が出力されます。これはエクスプローラーではできないことで、便利に使えるでしょう。なお>が1つだけだと上書きモードですが、

    Get-ChildItem >> files.txt

    とすれば追記モードになります。

    Set-Locationでフォルダを移動

    いままでユーザ名フォルダの場所からファイル一覧を表示していましたが、この現在の位置を移動することもできます。以下のように入力すると、

    Set-Location c:\test

    Cドライブのテストフォルダに移動します。プロンプトが「PS C:\test>」に変わるのでわかります。また、以下のように入力すると、

    Set-Location ..

    一つ上の階層のフォルダに移動します。これは良く使うので覚えておきましょう。

    エイリアスがあるので短いコマンド名も使える

    フォルダの移動だけでSet-Locationと入力するのは面倒と感じる人もいるかもしれません。実は以下のように「cd」の2文字だけでもSet-Locationと同じ動作ができます。

    cd c:\test

    これはエイリアスという、コマンドを別の名前に置き換える機能があるからです。初期状態でどのようにエイリアスされているかは、以下のコマンドでわかります。

    Get-Alias

    実行すると以下のように定義されていることがわかります。cdやdirはコマンドプロンプトで使うコマンドですが、PowerShellもそれと同じ感覚で使うことができます。

    Alias cd -> Set-Location
    Alias dir -> Get-ChildItem

    インフラエンジニア専門の転職サイト FEnetインフラ

    PowerShellを使う理由は?

    この入門記事をここまで読んで、PowerShellだけしかできない事はあまり無いように感じるかもしれません。しかしそんなことはなく、PowerShellを使う理由としてあげられるのは、Select-Stringというコマンドの存在です。

    このコマンドはフォルダにあるテキストファイルの中から、指定した文字列がある行を表示してくれます。この機能はWindowsのエクスプローラーにはありません。

    Select-Stringで文字検索ができる

    例えば以下のように入力すると、

    Select-String c:\test\*.txt -Pattern PowerShell入門

    testフォルダに「PowerShell入門」を含むテキストファイルがあった場合、以下のように該当する行が表示されます。

    test\test1.txt:2:わかりやすいPowerShell入門

    注意点は、文字コードがユニコードのファイルが対象であることです。これはPowerShellがWindows以外の動作環境でも動くことを前提にしていることが理由です。

    Select-Stringは文字コードの変更も可能

    Windowsを普通に使っていると、テキストファイルはShift_JISであることが多いでしょう。そういったファイルを対象にする場合は、以下のようにしてください。

    Select-String c:\test\*.txt -Pattern あいうえお -Encoding default

    これでWindowsのデフォルトの文字コードであるShift_JISのテキストファイルの検索ができます。

    なおこのような検索機能は、実はコマンドプロンプトでもfindstrで実行できます。それでも今後はPowerShellを使ったほうが良いので、入門者はこちらをマスターしましょう。

    スクリプトを作る

    ここまで1行のコマンドラインを実行していましたが、次はプログラミングっぽいことをしてみましょう。スタートメニューから「Windows PowerShell ISE」を起動してください。するとプログラミング開発環境のようなアプリが起動します。

    これで複数行のスクリプトを作ることができます。上のテキスト入力欄に以下を入力してください。そしてF5キーで実行できます。

    スクリプトの解説

    上のスクリプトはtestフォルダにあるtxtファイルのファイル名に、作成日付を付けてコピーをします。Get-ChildItemの結果をforeachで順に処理して、拡張子が.txtだったら、.txtを作成日付+.txtに置換して、Copy-Itemで複製をしています。

    $file、$fullname、$outputは変数といって、=で右辺を代入します。入門記事としては難しいかもしれませんが、PowerShellをマスターすれば高度な処理ができるということを感じてもらえれば今は十分です。

    PowerShellをマスターすればとても便利

    PowerShell入門の記事はいかがでしたでしょうか。終わりの方は入門としては少し難しい内容に感じたかもしれませんが、PowerShellでエクスプローラーではできない高度な処理もできることを理解していただければ幸いです。
     

     

    FEnet経験者優遇! 最短10秒!

    FEnetを運営しているネプラス株式会社はサービス開始から10年以上
    『エンジニアの生涯価値の向上』をミッションに掲げ、
    多くのインフラエンジニア・ネットワークエンジニアの就業を支援してきました。
    ネプラス株式会社ロゴ

    ネプラス株式会社はこんな会社です

    秋葉原オフィスにはネプラス株式会社をはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • インフラ業界に特化

      インフラ業界に特化

      ネットワーク・サーバー・データベース等、ITインフラ業界に特化。Cisco Systemsプレミアパートナーをはじめ各種ベンダーのパートナー企業です。

      業界を知り尽くしているからこそ大手の取引先企業、経験豊富なエンジニアに選ばれています。

    • 正社員なのにフリーランスのような働き方

      正社員なのにフリーランスのような働き方

      正社員の方でも希望を聞いたうえでプロジェクトをアサインさせていただいており、フリーランスのような働き方が可能。帰社日もありません。

      プロジェクト終了後もすぐに次の案件をご紹介させていただきますのでご安心ください。

    • 大手直取引の高額案件

      大手直取引の高額案件

      案件のほとんどが大手SIerやエンドユーザーからの直取引のためエンジニアの皆様へに高く還元できています。

      Ciscoをはじめ、Juniper、Azure、Linux、AWS等インフラに特化した常時300件以上の案件があります。

    • スキルアップ支援

      スキルアップ支援

      不要なコストを削減し、その分エンジニアの方へのスキルアップ支援(ネットワーク機器貸出、合格時の受験費用支給など)や給与で還元しています。

      受験費用例)CCNP,CCIE:6-20万円、JNCIS:3-4万円、AWS:1-3万円など

      ※業務に関連する一定の資格のみ。各種条件がありますので詳しくは担当者へにお尋ねください。

    • 現給与を保証します!

      100%現給与保証

      前職の給与保証しており、昨年度は100%の方が給与アップを実現。収入面の不安がある方でも安心して入社していただけます。

      ※適用にはインフラエンジニアの業務経験1年以上、等一定の条件がございます。

    • インセンティブ制度

      インセンティブ制度

      ネットワーク機器の販売・レンタル事業等、売上に貢献いただいた方にはインセンティブをお支払いしています。

      取引先企業とエンジニア側、双方にメリットがあり大変好評をいただいています。

    • 社会保険・福利厚生

      社会保険・福利厚生

      社員の方は、社会保険を完備。健康保険は業界内で最も評価の高い「関東ITソフトウェア健康保険組合」です。

      さらに様々なサービスをお得に利用できるベネフィットステーションにも加入いただきます。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      ネプラスは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    ネプラス株式会社に興味を持った方へ

    ネプラス株式会社では、インフラエンジニアを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    ネプラス株式会社へのご応募はこちら↓
    ネプラス株式会社へのご応募はこちら↓

    新着案件New Job

    人気記事Popular Posts