コマンドライン、バンザイ!
FirstUPDATE2017.3.26
@Scribble #Scribble2017 #プログラミング #Windows #PC 単ページ コマンドライン ImageMagick

えと、今回のエントリは完全に個人的メモです。自分が忘れないために、記録として書き残しておこうと。まさにチラ裏の極致ですが、ここに書くのがね、一番とっ散らからなくていいんです。

おとついのエントリで「MortScriptという古い古いスクリプトで自動化をさせているが、これだけでは出来ることは限られすぎている。だからffmpegというツールと組み合わせて使っているのだ」みたいなことを書きましまた。
でもMortScriptと組み合わせている、つか連携させているのはffmpegだけじゃない。ffmpegは動画・音楽ファイル用なので、他のことをさせたければ他のツールと連携させなければいけません。
そこでffmpeg以外の、コマンドラインから操作できるツールの名前を書き留めておこうかと。

◇ 文字コード判定&変換ツール.NET
名前の通り、文字コードの判定と変換をしてくれるツールです。以前書いたように、MortScriptはSHIFT_JIS以外の扱いができないに等しいので、UTF8が基準のiPhoneやMacでも扱えるテキストファイルの作成にはコイツが必須なのです。(現注・現在はnkf(Network Kanji Filter)を使っています)

◇ smail
コマンドラインからメールを送信する「だけ」のツールですが、PCの動作状況を外出先からでも簡単に知ることができるので重宝しています。(現注・その後、メールサーバの仕様変更とかがあって使えなくなった)

◇ FTime
作成日時や更新日時はわりとグチャグチャになりやすいのですが、スクリプトと上手く連動してやると簡単に作成日時と更新日時が変更できる。
とくに某サービスに動画をアップロードする時に超絶役に立ってくれます。

◇ tmmFtpUpload
まだ半分実験段階。FTPにアップロードするツールで、一応アップロードできてるんだけど、たまにアップロードしたファイルが開けない時があるというかファイルが壊れるというか。
原因調査中です。何でなんだろ。(現注・ただのケアレスミスでした)

◇ 真空波動研SuperLite
これは厳密にはコマンドラインツールではありません。
ファイルのフルパスを引数に渡すと、動画、音楽、画像の情報をクリップボードに入れてくれるだけのツール。
シンプルな単機能ツールですが、簡単にファイルの詳細情報を得られるので、かなり重宝します。

◇ HandBrakeCLI
動画のエンコードは基本ffmpegでいいんだけど、サクッとやりたい時は何故かこれを使ってる。QSVでエンコードする時は何かこっちの方が上手くいくんだよね。

◇ mp3gain(AACgain)
動画ファイルと音楽ファイルの音量の調整用。
ファイルサイズが大きすぎると失敗するのは何でだろうか。

◇ ImageMagick
ffmpegが動画と音楽ファイルのエンコードなら、ImageMagickは画像をコマンドラインから弄るツール。アタシはスクリプト経由で使うので、いわゆるポータブル版を使っています。
JPEGをPNGにしたり、サイズを変えたり、クロップしたり、なんてことはわりと簡単にできる。
だけれどもそれ以上、となると結構難しい。ffmepg同様かなり多機能で、使いこなすにはそれなりのトライ&エラーっつーか、もう修練ですね、が必要なのです。

◇ PowerShell
これはスクリプトなんです。だから本来は単独でというかMortScriptの代わりに使うべきなんだろうけど、アタシはMortScriptに慣れきっているので変えようとは思わない。
けどPowerShellにできてMortScriptではできないことがあるので、補助つーか補完として使ってるという。
あくまで補完としてなのでMortScriptとカブる機能はまったく使っていないし使えない。つか調べる気すらない。いや「気」はなくはないけど、書店に行ってもPowerShellの本とか本当に置いてないのよね。あんまり人気ないのかしらん。
PowerShellはマイクロソフト謹製でWindowsに標準で入っているから、なくなることはないと思うし、Windowsの機能にも完全に対応している。
だから将来的なことを考えたらMortScriptから乗り換えた方が良いんだろうけどさ。うーん。


これらのツールにffmpegをプラスしたものが主要補完ツールですが、どうしてもこれだけは書いておかなきゃいけない。
アタシがMortScript+補完ツールを使って作ったスクリプトは完全なる個人用です。スクリプト自体に汎用性はほとんどなく、自分が使えればいいや、というか、思った通りに動作してくれたらいい、みたいな感じでしかスクリプトを書いていません。つまり他人に見せる、ということを一切考慮せずに作っているということです。

もちろんね、アタシは本職のプログラマでもなんでもないので稚拙なものしか作れないってのもある。でも実際に作ってみたら嫌というほどわかるけど、プログラム(ま、スクリプトだけど)ってのは汎用性を持たせようとすると途端に難易度が上がるんです。
いろいろ作っていくうちにね、この箇所はいろんなスクリプトで応用が利きそうだから汎用性のある外部スクリプトにしようか、とかね、そういうことはままある。文字コード変換なんかほとんど同じことだから汎用サブスクリプトを作ってたりはするんだけど、やっぱ相当面倒なんですよ。

ま、やったことあるかないかでいえばあるんだけど、ネットでスクリプトを公開、なんてしたらもっと面倒で、ダウンロードした人がどんな環境なのかもわかんないし、大抵の環境で問題なく動作するモノを作る、なんて、考えただけでも気が遠くなる。
「フリーソフトの作者はタダでそんなことをやって大変だな」ということでもない。むしろフリーソフトの場合は「タダなんだから」という逃げ道がある。でもシェアソフトとか、もっといえば市販ソフトなんか「よほど特殊な環境以外では動かないのは絶対に許されない」世界なわけです。しかも下手したらPC自体に悪影響を与えるかもしれない。これはプログラマとかそんなん関係なしに、純粋にすごい重責の中でやってるんだな、と思うわけで。

そこへいくと、自分のためだけにスクリプトを書くってのは本当に気楽です。
しかも作るスクリプトってのが「ほんのちょっとずつ、生活や仕事を楽にしてくれる」ものばかり。実際今アタシがスクリプトを取り上げられると、くだらない作業が増えすぎて、それだけで1日潰れてしまうんじゃないか、と思うし。

大変は大変だけど、面白くて気楽で、いろいろ楽になる。それこそまさにPCの使い方な気がするんですがね。







Copyright © 2003 yabunira. All rights reserved.