どうも!リョクちゃです。
ひょんなことからPowerShellを使い始めたので、自身の勉強ノートも兼ねて
いくつか記事にしていきます。
1回目は、とあるフォルダにあるすべてのフォルダの名前をひとまとめにして、
テキストファイルに出力するといった方法を紹介していきます。
とはいうのも、フォルダを作りすぎてしまって、どんなフォルダがあるのかを
まとめたいときに手動でやるのも非効率だなと感じ、
効率化させようと思ったのがきっかけです。
同様のことをやろうとしている人の参考になれば嬉しいです。
目次
PowerShellとは
Microsoftが開発したスクリプト言語および
キャラクターユーザーインターフェイス(CUI) の1つです。
Windows環境で使える、コマンドプロンプトの上位にあたる
CUIといえるのではないでしょうか?
Windows10では標準搭載され、Microsoftが推奨しているのも特徴的です。
コマンドプロンプトとの違い
「コマンドプロンプト」はどちらも同じCUIですが、後発のPowerShellは
「コマンドプロンプト」が抱えているいくつかの問題点を改良した
作りになっている点が注目ポイントです。
拡張子
PowerShellの拡張子は.ps1で表されます。
PowerShellの起動
Windows10であれば、タスクバー左の虫眼鏡アイコンのある検索欄
“ここに入力して検索”にpowershellと入力すると、下図のような状態になるかと思います。
赤枠で囲まれたアプリを立ち上げると、PowerShellが立ち上がります。
PowerShellプログラミング
フォルダ名一覧を取得
フォルダ名一覧を取得するには、以下のコマンドを使用します。
- -Path : どの場所で一覧を取得するか明示してあげるための引数
- -Include : 探したいファイルの拡張子
- -Recurse : -Pathで指定したフォルダのサブフォルダも含めて検索
1 |
Get-ChildItem -Path "C:\Users\<ユーザー名>\Desktop\PowerShell_Test" | Where-Object {$_.PSIsContainer} |
結果として
1 |
(Get-CHildItem -Path "C:\Users\<ユーザー名>\Desktop\PowerShell_Test" | Where-Object {$_.PSIsContainer}).name |
もしくは
1 |
Get-ChildItem -Path "C:\Users\<ユーザー名>\Desktop\PowerShell_Test" | Where-Object {$_.PSIsContainer} | Select-Object Name |
Select-Objectというコマンドを組み合わせることで名前のみを取得することも可能です。
Select-Objectでは、取得した属性を絞ることができます。
テキストファイルの作成
フォルダ名の取得ができたので、今度は結果をテキストファイルに出力していきます。
テキストファイルを作成するコマンドとしては、
これも同様に挟むことで組み合わせて使います。
1 |
(Get-CHildItem -Path "C:\Users\<ユーザー名>\Desktop\PowerShell_Test" | Where-Object {$_.PSIsContainer}).name | Out-File "C:\Users\<ユーザー名>\Desktop\PowerShell_Test\test.txt" |
もしくは
1 |
Get-ChildItem -Path "C:\Users\<ユーザー名>\Desktop\PowerShell_Test" | Where-Object {$_.PSIsContainer} | Select-Object Name | Out-File "C:\Users\<ユーザー名>\Desktop\PowerShell_Test\test.txt" |
※こちらの場合、ヘッダとして余計な文字が含まれます。
以上、フォルダ名一覧を取得して、テキストファイルを作成することに成功しました。
コマンドプロンプトで行うよりも簡単に扱えて、便利だなと感じました。
しかもコマンドを組み合わせることで、様々な用途に応じた使い方の切り分けができるので
いいなと感じています。
これから勉強して、業務の効率化ができるよう目指していきます。
まとめ
フォルダ名一覧を取得して、テキストファイルに出力する方法を紹介してきました。
PowerShellって便利ですね……バッチファイルとは違ってわかりやすく、
慣れてしまうと複雑なこともPowerShellでやらせたくなります。
オブジェクト指向のプログラミングを経験された方ならPowerShellのが掴みやすくて
入りやすいかもしれないですね。
次回は、よりプログラムちっくな話でも出来たらなと思います。
最後までお読みいただき、ありがとうございます。