ラベル bat の投稿を表示しています。 すべての投稿を表示
ラベル bat の投稿を表示しています。 すべての投稿を表示

2019/01/06

【Windows】複数のPDFファイルを一括印刷したい



こんにちは!複数あるPDFファイルの印刷で最近悩まされていたtknria(@tknria0304)です!

仕事上、取引先ごとに請求書を作成して印刷したものを郵送する、というタスクが毎月発生します。

取引履歴はスプレッドシートで管理しています。
その集計やPDFファイルの作成は、取引先ごとに手作業で行っていましたが、ここはGASによって効率化することができました。
(この内容については後日またご紹介します)
しかし、作成したPDFファイルを一気に印刷する方法がわからず、ひとつずつPDFファイルを開いて印刷して次のPDFファイルを開いて・・・と煩雑な作業を行っていました。

これが3社とか5社の話ならまだ良いですが、取引先は増え続けるので今後途方もない作業になると感じました。

そこでこの「印刷する」という部分を自動化するためにいろいろ手段を探って、ようやく実現することができました。

今回はそのなかでも特に基本的で簡単なものをご紹介します。



複数あるPDFファイルをまとめて一気に印刷しよう


今回ご紹介するのは「バッチ処理」と呼ばれる方法です。
Windows PCに限って対応していますが、特に開発環境も必要ないため非常に便利です。

まずは、スタートメニュー→Windowsアクセサリ→メモ帳をクリックして、メモ帳を起動してください。

次に下記コードをコピペして「printall.bat」という名前を付けて保存してください。
(ファイル名は「a.bat」でも「test.bat」でも、なんでもOKです。)
ここで「.bat」と拡張子まで指定して保存する必要があるので、ファイルの種類は全ての種類を選択する必要があります。

for %%i in (*.pdf) do (
START ACRORD32.EXE \n \t %%i
)

このファイルを、印刷したいPDFファイルを保存しているフォルダの中に移動してください。

そして、後はこのbatファイルをダブルクリックするだけです。

すると、一瞬だけ黒い画面が見え(コマンドプロンプトと呼ばれる画面です)、フォルダ内の全てのPDFファイルの印刷が始まります。

どれだけファイル数があっても流用できるので、割と使い勝手が良いのではないでしょうか。



億劫なあとがき


いかがでしょうか。

わずか3行のコードを書くだけで、数分~数10分の作業時間を削減することができます。
このように、わずかな労力で業務効率を上げられるというのは、業務効率化スキルの好例のひとつと言えます。

2013/10/10

【Windows】複数の不要なファイルを定期的に一括削除したい



こんにちは!ファイルが溜まってくるとストレスまで溜まっちゃうtknriaです!


膨大な実験データとかパッと整理がつかないと大変ですし、仕事の効率も落ちちゃいますよね!

なので、そういったゴミ箱に溜まったファイルなどを、定期的に自動的に削除したいというタスクがあります。


今の職場では、スキャナのスキャン結果をサーバー上の決まったフォルダに格納しています。

しかし、その容量が小さいということで、タイムスタンプが3日以上前のファイルは削除していく作業を、毎日したいという要望がありました。


OUTLOOK内の「削除済みボックス」を空にしたいということであればVBAで実装しますが、今回は共有フォルダ上の話ということもあってbatファイルを作成しました。



一括削除するbatファイルを作成しよう!


Windowsに標準で入っているメモ帳を立ち上げて、下記コードをコピペしてください。


pushd \\(サーバー名)\(フォルダ名)
forfiles /P %cd% /M *.pdf /D -3 /C "cmd /c if @isdir==FALSE del @file"
popd



この3行で終わり。

これをメモ帳にコピペし、「削除.bat」という名前で保存します。(ファイル名は何でも良い)


このファイルをダブルクリックしてやることで、処理が行われます。



億劫な解説!


とは言ったものの、ぶっちゃけ、僕も他のサイトさんを参考にして試行錯誤して作ったんで、解説できるほどわかっていません。


・pushd、popd

\\(  )\(  ) のようなサーバー上のパスのことをUNCパスといいますが、いきなりカレントディレクトリをここに指定してもエラーが発生します。一度、ネットワークドライブに割り当てることで指定が可能になります。

pushdだと、このネットワークドライブの割り当てを自動的に行ってくれるため、手間がかかりません。

さらに、終了時にpopdコマンドを入力することで、割り当てを解除してくれます。


・forfiles

forfilesは、
 /P :指定したディレクトリ内のファイルを処理していきます。
 /M :拡張子等を指定することで、マスクすることもできます。
 /D :今回の「/D -3」によって、「本日から3日以上前のファイル」を対象にしています。
 /C :「if @isdir==FALSE」でファイルかフォルダかを判別し、ファイルであれば「del」削除するという処理を行う、という指示です。

詳しくはコマンドプロンプトで、「forfiles /?」と入力して、使い方を参照してください。



億劫なあとがき


batファイルは特に開発環境が必要ないので、Windowsユーザーにはありがたいですね。