PowerShellのechoの使い方を解説!

PowerShellのechoとは?
PowerShellはWindows10に標準で入っている多機能なシェルスクリプトです。Windowsには昔からDOS窓と言われるコマンドプロンプトがあって、その機能を使用する実行形式ファイルをバッチファイルと言いますが、PowerShellはそれが大幅に強化されています。
PowerShellのechoはコンソールに文字を表示する機能です。文字表示は基本と言えるので、しっかりマスターしましょう。
echoを使ってみる
PowerShellを使うには、スタートメニューのWindows PowerShellのフォルダにあるWindows PowerShellを実行します。するとコンソールのウィンドウが立ち上がります。早速echoを使ってみましょう。
echo あいうえお
この様に入力してEnterキーを押すと、コンソールに
あいうえお
と表示されます。echoを使うことが出来ました。
‘や”で囲っても同じ結果になる
以下のように出力する文字列を’や”で囲って入力しても、結果は同じく「あいうえお」になります。
echo ‘あいうえお’
echo “あいうえお”
しかし、実はこの2つには違いがあります。それはエスケープシーケンスが有効になるかどうかです。その違いを説明する前に、PowerShellにおけるエスケープシーケンスを説明しましょう。
PowerShellのエスケープシーケンス
PowerShellに以下のように入力してみましょう。
echo あいうnえお
結果は以下のようになります。
あいう
えお
nがエスケープシーケンスです。
はキーボードの@キーをShiftキーを押しながら入力します。
nはラインフィードと呼ばれ、改行をするという効果があります。
PowerShellのエスケープシーケンスは他には以下のようなものがあります。
r キャリッジリターン。行頭に戻る。
t タブ。
a 警告。Windows10では音が鳴る。
‘ シングルクォーテーション。
" タブルクォーテーション。
バッククォーテーション。
0 Null。
‘と”の違い
行頭に戻るキャリッジリターンは無意味に感じるかもしれませんが、もともとキャリッジリターンとラインフィードはタイプライターの動きを再現する名残で残っています。ラインフィードのnだけ知っていれば良いでしょう。
話を戻して、文字列を’で囲うのと、"で囲うのとの違いを説明しましょう。これはエスケープシーケンスを記述するとわかります。以下の実行結果は、
echo 'あいう
nえお’
以下になります。
あいうnえお
'と"の関係
'で囲うとエスケープシーケンスが機能しないのです。なお以下のように"の場合は、
echo "あいう
nえお”
以下のように機能するので、”は囲まない場合と同じということになります。
あいう
えお
ちなみに’を”で囲った場合は、
echo “‘あいうえお'”
結果は以下のように’をエスケープしなくてもそのまま出ます。
‘あいうえお’
“を’で囲った場合は、
echo ‘”あいうえお”‘
結果は以下のように”がエスケープ不要になります。
“あいうえお”
変数の展開について
次は変数の展開についてです。echoで表示する時、文字列に変数をつなげることができます。
$ue = ‘うえ’
echo “あい$ue お”
結果は
あいうえ お
になります。以下のように’を使った場合は、
echo ‘あい$ue お’
結果は以下になります。エスケープシーケンスの時と同じで、’は変数の内容が展開されずそのまま表示されます。
あい$ue お
なおechoで文字列に変数をつなげる場合、変数の後ろにスペースが必要です。そのため今回のケースではどうしても「え」と「お」の間にスペースが入ってしまいます。
変数の後ろのスペースは除去できない
スペースを無くしたいならば、例えば以下のようにするしかないでしょう。根本的な解決にはなってないのですが。
$ue = ‘うえ’
$ueo = $ue + ‘お’
echo “あい$ueo”
結果は以下になります。
あいうえお
なお以下のように、”も’も使用しない場合は、
echo あい$ue お
以下のようになります。スペースが改行扱いになるということですね。
あいうえ
お
PowerShellにechoというコマンドは無い
ここまでechoを使用してきましたが、実はPowerShellにはechoというコマンドはありません。エイリアスと言う機能により、echoを呼ぶと別のコマンドが呼び出されていたのです。それを知るには、PowerShellのコンソールで、
Get-Alias
と入力します。するとエイリアスの一覧が表示されますが、その中に、
Alias echo -> Write-Output
があります。echoと入力すると、Write-Outputというコマンドが呼び出されていたのです。このようにしている理由は、コマンドプロンプトなどの古いシェルでは文字表示コマンドはechoが一般的だったので、それに慣れている人がすぐ使えるようにという配慮です。
Write-HostとWrite-Outputの違いは?
echoはWrite-Outputであることがわかりましたが、PowerShellでコンソールに文字を表示する場合、Write-Hostを使う方が多くなっています。理由はWrite-HostはのHostはコンソールを意味していて、それに文字を表示するための専用のコマンドだからです。
Write-Outputは|のパイプラインで別のコマンドが続く場合は、コンソールではなくそちらに出力します。Write-Hostは続きの|があってもコンソールに出力します。ただしWrite-Outputも|が無ければコンソールに出力するので、その場合はWrite-Hostと変わりません。ここまでの例は|が無いのでコンソールに表示されていました。
違いのわかりやすい例
以下はecho(Write-Output)とWrite-Hostの違いの分かりやすい例です。
echo @(‘あ’,’い’,’う’,’え’,’お’) | Select-String う
これの実行結果は以下になります。echoが配列を出力してそれをパイプラインでSelect-Stringに渡して、そちらで「う」を選択しています。
う
ところが以下の結果は、
Write-Host @(‘あ’,’い’,’う’,’え’,’お’) | Select-String う
以下になります。Write-Hostはコンソール出力専用のコマンドのため、パイプラインに出力を渡すことができないということです。
あ い う え お
echoでファイル出力をする
echo(Write-Output)はWrite-Hostと違いコンソール以外にも出力できるので、ファイル出力も簡単にできます。以下はその例です。
echo ‘テスト’ | Out-File -FilePath ‘c:\test\test.txt’ -append
echoの出力をパイプラインでOut-Fileコマンドに渡します。Out-Fileは-FilePathで指定されたファイルに出力します。-appendを付けると追記モードなので、書き足されます。ログなどにとても便利に使えます。
リダイレクトならもっと簡単
上のようなファイル出力は、リダイレクトを使えばもっと簡単に書けます。以下で上と同じことが出来ます。
echo ‘テスト’ >> c:\test\test.txt
不等号の>>がリダイレクトです。>が2つあると追記モードで、1つだと上書きします。ファイル出力処理はC#やJavaやVBAだともっと多くのコードが必要なのですが、PowerShellならとても簡単です。
echoを活用してPowerShellを使いこなそう
PowerShellのechoについて解説しましたがいかがでしたでしょうか。echoはエイリアスで本来のコマンドはWrite-Outputなので、そちらを使う方が良いでしょう。
FEnetを運営しているネプラス株式会社はサービス開始から10年以上
『エンジニアの生涯価値の向上』をミッションに掲げ、
多くのインフラエンジニア・ネットワークエンジニアの就業を支援してきました。
ネプラス株式会社はこんな会社です
秋葉原オフィスにはネプラス株式会社をはじめグループのIT企業が集結!
数多くのエンジニアが集まります。

-
インフラ業界に特化
ネットワーク・サーバー・データベース等、ITインフラ業界に特化。Cisco Systemsプレミアパートナーをはじめ各種ベンダーのパートナー企業です。
業界を知り尽くしているからこそ大手の取引先企業、経験豊富なエンジニアに選ばれています。
-
正社員なのにフリーランスのような働き方
正社員の方でも希望を聞いたうえでプロジェクトをアサインさせていただいており、フリーランスのような働き方が可能。帰社日もありません。
プロジェクト終了後もすぐに次の案件をご紹介させていただきますのでご安心ください。
-
大手直取引の高額案件
案件のほとんどが大手SIerやエンドユーザーからの直取引のためエンジニアの皆様へに高く還元できています。
Ciscoをはじめ、Juniper、Azure、Linux、AWS等インフラに特化した常時300件以上の案件があります。
-
スキルアップ支援
不要なコストを削減し、その分エンジニアの方へのスキルアップ支援(ネットワーク機器貸出、合格時の受験費用支給など)や給与で還元しています。
受験費用例)CCNP,CCIE:6-20万円、JNCIS:3-4万円、AWS:1-3万円など
※業務に関連する一定の資格のみ。各種条件がありますので詳しくは担当者へにお尋ねください。
-
現給与を保証します!※
前職の給与保証しており、昨年度は100%の方が給与アップを実現。収入面の不安がある方でも安心して入社していただけます。
※適用にはインフラエンジニアの業務経験1年以上、等一定の条件がございます。
-
インセンティブ制度
ネットワーク機器の販売・レンタル事業等、売上に貢献いただいた方にはインセンティブをお支払いしています。
取引先企業とエンジニア側、双方にメリットがあり大変好評をいただいています。
-
社会保険・福利厚生
社員の方は、社会保険を完備。健康保険は業界内で最も評価の高い「関東ITソフトウェア健康保険組合」です。
さらに様々なサービスをお得に利用できるベネフィットステーションにも加入いただきます。
-
東証プライム上場企業グループ
ネプラスは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
ネプラス株式会社に興味を持った方へ
ネプラス株式会社では、インフラエンジニアを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
オンライン面接も随時受付中。ぜひお気軽にご応募ください。


新着案件New Job
-
【高額年収】/【CCNA取得者歓迎】/ネットワークの構築/BIG-IP/東京都千代田区/【WEB面談可】/在宅ワーク/20代~30代の方活躍中
年収540万~540万円東京都千代田区(神保町駅) -
東京都中央区/【WEB面談可/インフラサーバ経験者/20~40代の方活躍中】/在宅ワーク
年収600万~600万円東京都中央区(小伝馬町駅) -
【高額年収】/インフラ構築支援/東京都港区/【WEB面談可/インフラサーバ経験者/20~40代の方活躍中】/在宅ワーク
年収960万~960万円東京都港区(新橋駅) -
ガバナンス推進、セキュリティ基盤支援/東京都港区/【WEB面談可】/在宅ワーク/20代~40代の方活躍中
年収780万~780万円東京都港区(新橋駅) -
カー用品販売会社の情報システム運用/東京都千代田区/【WEB面談可/インフラサーバ経験者/20~40代の方活躍中】/テレワーク
年収576万~576万円東京都千代田区(水道橋駅) -
ネットワーク構築、検証/東京都渋谷区/【WEB面談可】/テレワーク/20代~40代の方活躍中
年収540万~540万円東京都渋谷区(渋谷駅)