(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"
このファイルリストを用いて、以下を実行する。
- 開きたいファイルやフォルダを選択して、コピー(Ctrl+C)
- (筆者は、開きたいファイルやフォルダの行にカーソルを置き、Home、Shift+↓、Ctrl+Cで一行まるごとコピーすることが多い。)
- 一行まるごとコピーしたら、「ファイル名を指定して実行」(Win+R)を起動して、貼付け(Ctrl+V)後、OKキーを押す

あら不思議、ちゃんと目的のファイルやフォルダが開いた。
この技は、結構便利なので、興味のある方は使ってみてください。