当初はFile Explorerの検索窓に対象ファイル名を入力→印刷を繰り返しましたが、あまりにも面倒になったので対象ファイルを一気に印刷するPowerShell スクリプトを書いてみました。
2015.12.17 加筆
サンプルに印刷順のずれを抑止するスリープ処理を追加しました
Start-Process コマンドレットを使ってPDFを印刷する
サンプルの流れは以下の通りです。#PDFが保存されたフォルダーパス $path = "\\fileServer\Pdfs" #ファイルの拡張子 $ext = "pdf" #ファイル名が書かれたファイルパス $list = "c:\temp\list.txt" #ファイル名を読み取る $file = Get-Content -Path $list -Encoding Default #ファイルを印刷 $file | %{ Start-Process -FilePath "$path\$_.$ext" -Verb Print | Stop-Process #印刷順のズレを抑止するためのスリープ処理 Start-Sleep -Seconds 3 }
大切なパートは2つ。
一つ目はStart-Process コマンドレットの-Verbパラメーターです。
ヘルプを確認すると以下のようなVerb(動詞)が指定でき、今回は印刷なのでPrintを指定しています。
File type Verbs --------- ------- .cmd------Edit, Open, Print, Runas .exe------Open, RunAs .txt------Open, Print, PrintTo .wav------Open, Play
二つ目はStart-Sleep コマンドレット。
サンプルではStart-Process コマンドレットを実行した後に3秒スリープさせ、印刷順のズレを抑止しています。
もしStart-Process コマンドレットなしで実行すると印刷順がバラバラになり、場合によっては印刷物の順番を入れ替える手作業が発生します。