Windowsのポチポチ業務(マウスを使った業務)を爆速化するために、PowerShellを使った効率化の方法をお伝えしています。
前回の記事はこちらです。
前回はスクリプトの実行を制御するために必要な実行ポリシーについてご説明しました。
これまでの連載でディレクトリ・開発環境(ISE)・実行ポリシーと基礎的な内容をしっかりと積み上げてきました。本記事からはこれらを踏まえて実用的なスクリプトを作っていきます。
しかし、いざスクリプトを作ってみよう!と思ってもif文・for文など構文を使ったプログラミングは難易度が高いですよね。
そこで今回はノンプログラマーの方でも簡単に実用的なスクリプトの作成できる方法をご紹介します!
コマンドレットでディレクトリ(=フォルダ)を作る方法をお伝えし、さらにエクセルの数式・オートフィル機能を利用してコマンドレットを大量生産する方法もお伝えします。
写真データなどを日付毎のディレクトリに保存することはよくあるのではないでしょうか。このような日付毎のディレクトリを一気に作成するスクリプトを作ってみましょう!
ディレクトリを作成する
ディレクトリを作成するにはNew-Itemというコマンドレットを使用します。
New-Itemはディレクトリ、またはファイルを新たに作成するコマンドレットです。今回はディレクトリを作成したいのでItemTypeにDirectoryを指定します。
New-Itemの構文は以下の通りです。
201810、201811、201812、と3つのディレクトリを作ってみたいと思います。
まずPowerShellの開発環境であるISEを起動します。ISEについてはこちらの記事をご参照ください。
スクリプトウィンドウに以下のコマンドレットを入力します。
New-Item 201810 -ItemType Directory New-Item 201811 -ItemType Directory New-Item 201812 -ItemType Directory
デスクトップにSampleというディレクトリを作成し、その中にファイル名を「makedeirectory.ps1」としてスクリプトを保存してください。
実行前に実行ポリシーを変更してくださいね!実行ポリシーについてはこちらの記事をご参照ください。
このまま実行すると…
カレントディレクトリである「C:\Users\terad」にディレクトリが作成されています。指定した場所にディレクトリを作成できるようSet-Locationコマンドレットを使いカレントディレクトリを変更しておきましょう。
今回は先ほど作成したデスクトップ上のSampleというディレクトリを指定しましょう。
ディレクトリの移動方法についてはこちらの記事をご参照ください。
下記のようにスクリプトの1行目でカレントディレクトリを変更します。
Set-Location C:\Users\terad\Desktop\sample New-Item 201810 -ItemType Directory New-Item 201811 -ItemType Directory New-Item 201812 -ItemType Directory
保存して実行すると…
このように変更したカレントディレクトリ内に、ディレクトリを作成することができました。
エクセルの関数・数式でスクリプトを作成する
ここからはエクセルを使ってコマンドレットを大量生産する方法をお伝えします。
エクセルを起動し、2018/10/1~2018/10/31の日付をA列に入力します。エクセルのオートフィル機能を使えば連続した日付を一気に入力できます。
2018/10/1だけ入力し、セルの右下にマウスカーソルを合わせるとカーソルが「+」の形に変わります。その状態で左クリックを押しながら下にドラッグしてください。
このように連続した日付が一気に入力されました。
次に日付の隣、B列に以下の数式を入力してください。TEXT関数で日付形式のデータを文字列に変換します。
1行目のB1セルに数式を入力したらセルの右下にマウスカーソルを合わせ、ダブルクリックしてください。日付が入力されている行数分、数式が自動でコピーされます。
最後にスクリプトを作成する数式をC列に入力しましょう。
さきほどのB列同様、カーソルが「+」の状態でダブルクリックしてください。日付が入力されている行数分、一気に数式がコピーされます。
なお、この時点で日付を文字列に変換しておかないと
「New-Item 43374 -ItemType Directory」
のようにシリアル値という日付を数値で表した形に変換されてしまうため、前処理としてTEXT関数を使っています。
ISEにエクセルで作成したスクリプトを貼り付ける
C列で作成したコマンドレットをISEのスクリプトウィンドウに貼り付けましょう!
さきほど作成したカレントディレクトリを変更するSet-Location(1行目)は残しておき、ディレクトリを「C:\Users\terad\Desktop\sample\201810」に変更しましょう。
スクリプトを実行すると…
このように「201810」内に日付毎のディレクトリが作成できました!
まとめ&次回予告
いかがだったでしょうか。
New-Itemとうコマンドレットを使えば普段よく行うディレクトリ(=フォルダ)作成ができます。
またエクセルの数式とオートフィル機能を使えばそのコマンドレットを大量生産することができます。
ディレクトリを1つ1つマウスでコピーし名前を変更して…という作業に比べると格段に生産性が上がりますね!
次回以降はコマンドレットを複数並べて書くのではなく、繰り返し処理を使いスッキリとしたスクリプトを書いていきましょう。繰り返し処理に必要なパイプラインとForEach-Objectコマンドレットについて説明していきますよ。
最後までお読みいただきありがとうございました!
連載目次:Windowsのポチポチ業務を爆速化するPowerShell
Windowsのポチポチ業務(マウスを使った業務)を爆速化するために、PowerShellを使った効率化の方法をお伝えしています。- Windowsのポチポチ業務を爆速化するPowerShell、はじめのハードルぐーーんと下げてみます!
- Windowsのポチポチ業務を爆速化するPowerShell、キーボードを使わずササっと起動する方法
- Windowsのポチポチ操作を爆速化するPowerShellの絶対条件!ディレクトリとその移動をマスターしよう!
- Windowsのポチポチ業務を爆速化するPowerShell、コマンドレットを腹の底から理解する!
- Windowsのポチポチ業務を爆速化するPowerShell、オンラインヘルプでコマンドレットを使い倒す!
- Windowsのポチポチ業務を爆速化するPowerShell、統合開発環境ISEを紹介します!
- Windowsのポチポチ業務を爆速化するPowerShell、スクリプトを実行するための準備
- Windowsのポチポチ業務を爆速化するPowerShell、フォルダを作るスクリプトの作り方
- Windowsのポチポチ業務を爆速化するPowerShell、if文を使いフォルダの有無で処理を分岐させる方法
- Windowsのポチポチ業務を爆速化するPowerShell、ForEach-Objectで配列の全要素を処理する方法
- Windowsのポチポチ業務を爆速化するPowerShell、パイプラインを使いコマンドレット間で値を引き渡す方法
- Windowsのポチポチ業務を爆速化するPowerShell、ファイルを別フォルダにコピーし名称を変更する方法
- Windowsのポチポチ業務を爆速化するPowerShell、ファイル名を変更する方法
- Windowsのポチポチ業務を爆速化するPowerShell、正規表現で複雑なファイル名変更をする方法
- Windowsのポチポチ業務を爆速化するPowerShell、タスクスケジューラでスクリプトを決まった日時に起動する方法
- Windowsのポチポチ業務を爆速化するPowerShell、ファイルをバックアップするスクリプトの作り方
- Windowsのポチポチ業務を爆速化するPowerShell、関数を作ってスクリプトから呼び出す方法
- Windowsのポチポチ業務を爆速化するPowerShell、関数をコンソールで登録して呼び出す方法
- Windowsのポチポチ業務を爆速化するPowerShell、短いワードでサッと関数を呼び出すエイリアスの使い方
- Windowsのポチポチ業務を爆速化するPowerShell、関数やエイリアス保存場所のドライブを紹介します
- Windowsのポチポチ業務を爆速化するPowerShell、elseifで日付の元号を判定する方法
- Windowsのポチポチ業務を爆速化するPowerShell、日付を操るDatetime型