ひゃまだのblog

ひゃまだ(id:hymd3a)の趣味のブログ

Powershellで共有フォルダ等のファイルリストを作成する

(2025-01-25 初稿)

昨年11月から非常勤職員として、新しい職場で働きだした。

与えられたWindows環境の中で仕事をせざるを得ないので、効率的に仕事を進めるのはなかなか大変だ。

特に、新しい職場では先人達が作成したファイルを探し回ることが多く、無駄な労力を費やすことが多い。

当初、Batファイル等でファイル検索の作業を効率化しようとしたが、共有のネットワークドライブのファイルにアクセスに、ドライブレター等を付与しなくてはならない等、スムーズなアクセスには問題があった。

そこで、デフォルトでインストールされているPowershellを試したところ、制限のある環境の中でも無事に動作し、また、ネットワークドライブのファイルへのアクセスもスムーズにできた。

ということで、普段Debian使いの筆者が、慣れないPowershellを用いて、いくつかスクリプトを作成してみた。

この記事では、Powershellの第一弾で、ネットワークドライブのファイルリストを作成するスクリプトを紹介する。

作成したスクリプト

大したスクリプトではないので、早速紹介する。

ちなみに、共有フォルダは、「\\」(円マーク2つ)でアクセスすることができる。

# 共有フォルダのファイルリスト作成スクリプト
# Ver0.01 
# リストを作成するrootフォルダ
$RootFolder = "\\somewhere\somefolder"
# リスト書込み用フォルダ
$OutFolder = "C:\Users\hoge\Documents"
# リスト書込みファイル
$OutFile = "${OutFolder}\fl-$(Get-Date -Format "yyyy-MM-dd_HHmm").txt"

Get-ChildItem -Recurse $RootFolder |
ForEach-Object {
        $fpath = $_.FullName; Write-Output """$fpath""" 
} > $OutFile

上記のファイルをPowershell ISE または メモ帳 に貼り付けて、「make-filelist.ps1」等と好きな名前を付けて実行する。

メモ帳で作成する場合は、拡張子がps1になるように注意する。

スクリプト自体は特に難しい所はないと思うが、出力するファイル名に空白が含まれていることを考慮し、”””と"""(それぞれ3つ)のダブルクォートで囲むようにしている。

スクリプトを実行すると、Documentsフォルダに「fl-202x-xx-xx-hhmm.txt」などとスクリプトを起動した日時のファイルができる。

このファイルの中身は、ダブルクォートされたファイルがずらずらと列記されているだけである。

"\\somewhere\somefolder\a-folder\01.txt"
"\\somewhere\somefolder\b-folder"
"\\somewhere\somefolder\b-folder\02.docx"
"\\somewhere\somefolder\c-folder\03.xlsx"

このファイルリストを用いて、以下を実行する。

  1. 開きたいファイルやフォルダを選択して、コピー(Ctrl+C)
  2. (筆者は、開きたいファイルやフォルダの行にカーソルを置き、Home、Shift+↓、Ctrl+Cで一行まるごとコピーすることが多い。)
  3. 一行まるごとコピーしたら、「ファイル名を指定して実行」(Win+R)を起動して、貼付け(Ctrl+V)後、OKキーを押す

Win+Rでファイル名を指定して実行に貼り付ける

あら不思議、ちゃんと目的のファイルやフォルダが開いた。

この技は、結構便利なので、興味のある方は使ってみてください。

関連ページ