どうも!リョクちゃです。
今回は前回学んだ変数をもうちょっと使って使い方を学んでいきたいと思います。
その過程で、PowerShellが得意とする(だろう)フォルダ・ファイル操作を駆使しながら
取得した情報をファイルとして出力する方法を紹介していきます。
こんな時便利だと思います。
- フォルダ内のファイル一覧をテキストファイルに出力
- 特定のファイルを抜き出し、テキストファイルに出力
といったとこに利用できれば。
ちなみに前回のPowerShellはこちら
目次
変数のおさらい
変数は、以下の記述で作成・宣言することができました。
ファイル一覧を取得する
1 |
$test = Get-ChildItem -Path "C:\Users\<ユーザー名>\Desktop\PowerShell_Test" -Recurse |
取得できているかどうか、$testを指定してみてみます。
フォルダ毎にどのファイルがあるのか分けて表示してくれているのがわかります。
これだけでも価値はありますね。ファイル数が多くなるにつれて管理が大変になるので。。。
テキストファイルの出力
この情報が格納された変数をテキストファイルに出力してみます。
テキストファイルの出力には、以下のコマンドを使用します。
先ほどの取得した情報を出力するには、
1 |
$test | Out-File "C:\Users\<ユーザー名>\Desktop\PowerShell_Test\001.txt" |
001.txtという名前のテキストファイルを生成してくれます。
中身を見てみると、
表示されていた情報と同じ情報が出力されていますね。
特定のファイルを取得
今までは全てのファイルやフォルダを取得してしまう使い方でしたが、
これではあまり価値のある情報とは言えないので、特定のファイルを絞って取得します。
特定のファイルを取得するには、Get-ChildItemのオプション引数としてある、
-Filterを使用します。
今回は、.logファイルを取得してみます。
1 |
$test = Get-ChildItem -Path "C:\Users\<ユーザー名>\Desktop\PowerShell_Test" -Recurse -Filter *.log |
結果をみてみます。
フォルダ毎に取得ができているのがわかります。
ここまで調べられれば、すぐにどのファイルがどこのフォルダにあるのがわかります。
ちなみにPowerShellのWindowではディレクトリのパスをカーソルで選択し、
コピーをすることができます。
つまりは、コピーしたパスをエクスプローラで開いてあげれば、
すぐにそのファイルがある場所へ移動してくれてしまうのです。
こんな形で変数を使うと、やれることの幅が広がってきました。
取得した情報を変数では保持することができるので、何かあった時に
変数に情報を格納していたなと覚えていれば、変数から情報を引っ張ってくれば
問題を早く解決することもできるのではないでしょうか?
まとめ
PowerShellの変数をもうちょっと賢く使った方法を紹介していきました。
変数を使うことでコマンドレットだけで処理するよりも賢く且つ
効率的に扱えることができるようになったのではないでしょうか?
変数は使えるようになる強力なので、ぜひ覚えておいてもらいたいです。
またPowerShellはちょっとしたプログラムを組むことで簡単な自動化もできるので、
高級言語を使ってプログラムを組むよりはいいかなと思います。
環境構築も手間いらずなので、ぜひ習得してみてください。
最後までお読みいただき、ありがとうございます。