コピー2018.11.26Windowsのポチポチ業務(マウスを使った業務)を爆速化するために、PowerShellを使った効率化の方法をお伝えしています。前回の記事はこちらです。Windowsのポチポチ業務を爆速化するPowerShell、ForEach-Objectで配列の全要素を処理する方法Windowsのマウスを使った業務(=ポチポチ業務)を爆速化するPowerShell。ForEach-Objectというコマンドレットを使って、配列の全要素への繰り返し処理をシンプルに書く方法をお伝えします!tonari-it.com2018.11.22前回はコマンドレット:ForEach-Objectを使って、配列の全要素に対する繰り返し処理をシンプルに書く方法をお伝えしました。今回から繰り返し処理をすることで複数ファイルの名称を変更する実践的な方法をご紹介します。本記事ではコマンドレット間でファイルを引き渡すためのパイプラインという仕組みを詳しく説明いたします。それではいってみましょう!目次ファイル名を変更するスクリプトの全体像Get-ChildItemでファイルを取得するForEach-Objectに複数ファイルを引き渡すオブジェクトとはパイプラインを使ってオブジェクトを引き渡すスクリプトを実行するまとめ連載目次:Windowsのポチポチ業務を爆速化するPowerShellファイル名を変更するスクリプトの全体像PowerShellのスクリプトはコマンドレットをパズルのように組み合わせていきます。ファイル名を変更するスクリプトの手順は以下の通りです。Get-ChildItemで複数ファイルを取得するForEach-Objectに複数ファイルを引き渡すCopy-Itemでファイルをコピーしファイル名を変更するコマンドレットを組み合わせるだけなので全体像としては単純ですね。手順1.のGet-ChidItemから順番に説明していきます。Get-ChildItemでファイルを取得する今回はデスクトップの「input」というディレクトリに01.txt~20.txtと20個のテキストファイルを用意しました。Get-ChildItemで変更元の複数ファイルをすべて取得することができます。構文は以下の通りです。ファイル名-Pathには取得したいファイル名を指定するのですが、今回は「*.txt」を指定します。「*」はワイルドカードという記号です。ワイルドカードを使えば任意の文字列を指定することができます。「*」の後ろに「.txt」をつけていますので、末尾が「.txt」であればファイルを取得するという意味になります。これで複数のファイルを取得することができます。ForEach-Objectに複数ファイルを引き渡すスクリプトの手順2をもう一度見てください。ForEach-Objectに複数ファイルを引き渡すGet-ChidItemで取得した複数のファイルを、どのようにForEach-Objectに引き渡せばよいのでしょうか。その時に使うのがパイプラインです。今回Get-ChildItemでは「*.txt」とファイル名を限定しているため「ファイルを取得する」と表現してきましたが、ディレクトリを取得することもできます。ファイル、ディレクトリなどをオブジェクトといいます。パイプラインとはコマンドレットで取得したオブジェクトを別のコマンドレットに引き渡す仕組みです。オブジェクトとはPowerShellのオブジェクトとは、Windowsの仕組み(フォルダ・ファイル・エクスプローラーなど)を仮想的に扱えるようにした仕組みです。Windowsのシステムで扱われるものはすべてオブジェクトとして定義されています。オブジェクトはプロパティとメソッドで構成されます。されているディレクトリ等メソッド:開く、閉じる、コピーする等プロパティは名前など属性、メソッドは開く/閉じるなど動作(ふるまい)のことです。仮想的に用意されたプロパティやメソッドを使うことで、Windowsの機能にアクセスすることができます。パイプラインを使ってオブジェクトを引き渡すパイプラインの使い方を見ていきましょう。パイプラインでオブジェクトを引き渡すことができたか確認するため、後続では文字列をコンソールに表示するWrite-Hostを使います。}「|」はパイプと呼びます。パイプを書くことでGet-ChildItemで取得した複数のオブジェクトは配列として後続のコマンドレットに引き渡されます。「$」は自動変数といい、オブジェクトが一つずつ順番に自動的に格納されます。「$.name」と自動変数の後ろで「.プロパティ名」と書くことでプロパティを取り出すことができます。ForEach-Objectはパイプラインで引き渡された複数のオブジェクトに対して、{}に書かれた処理を順番に実施してくれます。スクリプトを実行するISEで以下のスクリプトを実行してみます。デスクトップのパスはご自身の環境のものに書き換えてくださいね。$_.name}このようにinputディレクトリ内のすべてのオブジェクト01.txt~20.txtの名前を、Write-Hostでコンソールに書き出すことができました。まとめいかがだったでしょうか。コマンドレットが取得したオブジェクトはパイプラインで別のコマンドレットへ配列として引き渡すことができます。引き渡したオブジェクトは自動変数「$_」に自動的に格納されます。後続のコマンドレットでは「$_」や「$_.プロパティ名」に対して処理を記載します。ForEach-Objectを使えば複数のオブジェクトに対して{}の処理を順番に実施することができます。難しいループ文など書かなくてよいコマンドレット:ForEach-Objectが用意されているので楽に繰り返し処理が実現できますね。次回はCopy-Itemでファイルの名称を変更する方法を説明してきますよ。最後までお読みいただきありがとうございました!連載目次:Windowsのポチポチ業務を爆速化するPowerShellWindowsのポチポチ業務(マウスを使った業務)を爆速化するために、PowerShellを使った効率化の方法をお伝えしています。投稿者プロフィールteradoshプログラミングする福祉職システムエンジニアとして5年勤務した後、高齢者デイサービスで4年間働いた異色の経歴(学生時代は水泳コーチ)。プログラミングの経験を活かし、福祉現場の業務効率化に情熱を燃やしています!お気軽にフォローしてくださいね。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。関連記事PC全般・Windows【超入門】Windowsを10倍効率良く使うバッチファイル作成術Windowsを効率良く使うためのバッチファイル作成術をご紹介します。バッチファイルの作成を学べば、今よりももっといろいろなことが自動化・効率化できるようになります。2017.04.24PC全般・WindowsWindowsのポチポチ業務を爆速化するPowerShell、キーボードを使わずササっと起動する方法Windowsのマウス業務を爆速化するCUI=PowerShell。キーボードを使わずにササっと起動してHelloWorldをやってみましょう!2018.08.23PC全般・Windowsマウスはコピペが苦手?PC仕事を効率化するなら知っとくべきことマウスはPCのお仕事で必ずといっていいほど使う必須アイテムですが、仕事の効率でいうと意外と気づいていない落とし穴があるのです。マウスが効率の悪い原因となってしまうケースとその理由、対応するための心構えについてお伝えします。2015.02.20PC全般・WindowsWindowsのポチポチ業務を爆速化するPowerShell、関数やエイリアス保存場所のドライブを紹介しますWindowsのポチポチ業務(マウスを使った業務)を爆速化するPowerShell。今回は関数やエイリアスが保存されるドライブという領域について詳しく説明します!2019.03.04PC全般・Windows1PasswordのChrome拡張機能のインストールと超便利な使い方Windows編スマホやパソコンのログイン情報の手間を劇的に減らすことができるアプリ「1Password」の第2回目Chrome拡張機能のご紹介です!ログイン情報の自動保存、サイトへのログイン、セキュリティ度の高いパスワードの生成という基本機能についてご説明していきます。2016.10.13PC全般・WindowsWindows10でスリープ後にWi-Fiが見つからない!を手っ取り早く解決する方法WindowsのノートPCを使用していると、スリープから戻った際に突然Wi-Fiネットワークに接続できなくなってしまうときがあります。今回は再起動をせずに手っ取り早くWi-Fiの再接続をする方法です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。Scriptが「V8ランタイム」をサポート!モダンなECMAScript構文が使えるようになった2020.02.072020.02.08GASでコピーしたGoogleスライドのプレゼンテーションを取得する方法2020.02.052020.02.05Facebookページいつも隣にitのお仕事タイトルとURLをコピーしました。