【PowerShell】使うための準備~Get-ChildItemでファイルリストを作成

複数に分割されたファイルで翻訳依頼を受けた場合、ファイルリストを作って管理したくなることもしばしば。

そんなときに頼りになるのが、Windowsに標準搭載されている PowerShell なんです。

条件付きのファイル移動(docxだけ、-ENだけのような)やリネームなどにも使えますが、
まずは基礎として起動方法から、一番簡単なファイル名の取得までを紹介します。


起動方法① スタートメニューから起動

Windowsのスタートメニューに PowerShell と入力して、出てきたアイコンをクリックします。

すると、このような画面が表示されます。

これでPowerShellを使い始めることができます。

ただし、この方法では基本的にユーザーフォルダからのスタートになってしまい、
目的の場所までキーボード操作で移動しなければいけません。

そのため、通常は次の起動方法②がおすすめです。

起動方法② エクスプローラーから起動

まずはファイルリストを作りたいフォルダをエクスプローラーで開きます。

次にエクスプローラーのメニューから 「Windows PowerShell を開く」をクリックします。

すると今度は、このフォルダを起点としてPowerShellが起動します。

PSから始まる行の一番最後が変わっていますね。

それではこのフォルダにあるファイル名をすべて取得してみましょう。

コマンドレット Get-ChildItem を使う

PowerShellが起動したら、何はともあれ Get-ChildItemと打ち込んでみます。

Get-ChildItem -file

フォルダ内にあるサブフォルダとファイル名が列挙されました。

しかし、svgフォルダの中にあるファイルは取得できていません。

また、Modeという意味不明な項目はあるし、最終更新時間も必要ないことが多いでしょう。

次にいくつかのオプションを使ってみます。

オプションを使う

PowerShellをはじめ、こういったコマンドラインツールにはオプションが指定できるようになっています。

指定方法は、(ハイフン)を使うことがほとんどです。

ここではフォルダ内のファイルも検索対象に含める-Recurseと、
表示内容をファイルに限る-File
それから名前だけの表示にする-Nameの3つのオプションを使っています。

Get-ChildItem -Recurse -File -Name

これでかなりシンプルな表示とすることができました。

このままコピー&ペーストをしてもいいのですが、
せっかくなのでファイルリストを直接ファイルに変換してしまいましょう。

リダイレクト

PowerShellの画面に表示される結果は標準出力(Standard Output)と呼ばれます。

これをファイル出力に変更するための文字がリダイレクト記号 「>」です。

不等号というより矢印の意味ですね。

早速、上記のコマンドレットと組み合わせてみましょう。

Get-ChildItem -Recurse -File -Name > list.txt

今度は何も結果がありませんが、次の行が表示されたら処理が完了した証拠。

同じフォルダ内に list.txt というファイルができているはずです。

あとはこれを加工したりExcelに貼り付けたりして、ファイルリストの完成です。

なお、この方法でファイルを作成すると新規作成してくれるのですが、もし同じ名前のファイルがあったら、警告なく「上書き」してしまいます。
必要なファイル名と同じ名前をつけてしまわないように注意してください。

パイプを使う

結果の出力先は、標準出力とパイプ出力だけではありません。

次のコマンドレットの入力にも変えることができます。

それがパイプ 「|」 です。
アルファベットの I(アイ)に似ていますが別の記号で、通常の日本語キーボードであれば、Shift+\ で入力できます。

パイプを活用するには他のコマンドレットも覚える必要がありますが、ここでは簡単な事例を紹介します。

Get-ChildItem | Out-GridView

Out-GridView を使うと結果を簡易な表組みにして確認することができます。

フィルターを使って絞り込みをかけることもできます。

このほかにもファイルのコピーやリネームでもよく使う記号です。

入力補完とエイリアスを使ってさらにスピードアップ

PowerShellは便利ですが、上記のコマンドを見て「こんなに長い英語、覚えられない!」「面倒だ」と思った方も少なからずいると思います。

でも心配ありません。
PowerShellには入力を簡単にする工夫が詰まっています。

まずは入力補完。
途中まで入力をした状態でタブキーを押すと、残りの部分を自動で入力してくれます。

また、候補が複数あった場合、タブキーを押すたびに次の候補が表示されるので、
コマンドレットがうろ覚えでもなんとかなるものです。

次にエイリアス。

これは別名という意味で、使用頻度の高いコマンドレットにはそれぞれ短い別名がつけられています。

例えばGet-ChildItemであれば、大文字の部分をとって gci とするだけで同じ効果が得られます。

gci -Recurse -File -Name > list.txt

これで入力がずいぶん楽になりますね。

Get-ChildItemのより詳しい解説は「Get-ChildItem チートシート」にて解説しています。

リネームやファイル移動等の基礎になるものですので、ぜひマスターしてみてください!

CATOVIS LS

MS Office Wordと接続。軽量型でWYSIWYGを実現