hirax.net::Keywords::「バッチファイル」のブログ



2008-04-05[n年前へ]

「PowerPoint」から「他アプリケーション」を立ち上げる時のTips 

 WindowsでPowrePointで動画を使ったプレゼンテーションを行う時に問題になることは結構あるように思います。「動画のエンコーダ(展開プログラム)」「外部・内部ディスプレイ(もしくはプライマリ or セカンダリ以降のディスプレイ)の機能の違いやソフトウエア制限」「複数の動画再生をしたい」「(外部アプリケーションを使って)動画を再生した場合にPowerPointへの画面復帰が不自然になったりする」という辺りで、よく困ることがあります。

 「動画のエンコーダ」や「複数の動画の再生を簡単にしたい」という場合に便利なのが、次のようなMS-DOSのバッチファイルを書き、さらにそのバッチファイルのショートカットを作ることで、PowerPointのオブジェクト(たとえば画像など)をクリックし、バッチファイル(へのショートカット)を呼び出す、というテクニックです。

start "" "C:\Program Files\QuickTime\QuickTimePlayer.exe" "C:\s1.avi"
start "" "C:\Program Files\QuickTime\QuickTimePlayer.exe" "C:\s2.avi"
 上のようなバッチファイル(へのショートカット)を使えば、QuickTimePlayerをPowerPointから複数立ち上げて、複数のAVIファイルを同時に並べて再生することができます。

 バッチファイルを直接呼び出すのではなく、ショートカットを作り呼ぶようにするのは、コマンドプロンプトを表示させないようにするためです。右に示すダイアログ画面のように、バッチファイルの「ショートカットの実行時のプロパティ」を「最小化」にしておけば、QuickTimePlayer.exeを立ち上げるコマンドプロンプト(のような余計なもの)を聴衆に見せずにすみます。

 というわけで、これは「バッチファイルのショートカットを(プロパティを設定した上で)使う」というPowerPointから他アプリを使う時のTipsです。もちろん、PowerPointから他アプリを使う時でなくとも、複数のアプリケーションや動画などを一瞬で同時に立ち上げるときにも便利かもしれません。

バッチファイルのショートカットオブジェクトの動作設定






2009-06-04[n年前へ]

Windows VISTAとXPの「バッチファイルの動き方」の違い 

 Windowsでファイルを加工するスクリプトを作り、処理するファイルをドラッグアンドドロップして使うことができるように、バッチファイル(*.bat)を書いた。つまり、たとえば、こんなようなバッチファイルを書いた。

perl hoge.pl %1
 ところが、こんなバッチファイルを使おうとすると、Windows VISTA では意図した通りに動くのに、Windows XPでは動かないのである。

 その原因を追いかけてみると、バッチファイルを起動したときの挙動がWindowsのバージョンによって異なっていることが原因だった。あるいは、コマンドプロンプトのカレントディレクトリがどうなっているかを、私が意識していなかったことに原因があった。

 どういうことかと言うと、Windows VISTA では、バッチファイルをダブルクリックした時には、そのバッチファイルがあるディレクトリを「カレントディレクトリ」として起動したコマンドプロンプト内でバッチファイルに書かれた内容が処理される。ところが、バッチファイルにファイルをドラッグアンドドロップすると、そのバッチファイルは「ドラッグアンドドロップしたファイルがあるディレクトリ」をカレントディレクトリとして、コマンドプロンプトが起動し処理が行われる、という挙動になる。

 しかし、Windows XP では、『バッチファイルをダブルクリックすると、そのバッチファイルがあるディレクトリを「カレントディレクトリ」として起動したコマンドプロンプト内でバッチファイルに書かれた内容が処理される』というところまでは同じなのだが、バッチファイルにファイルをドラッグアンドドロップした場合には、そのバッチファイルは"C:\Documents and Settings\ユーザ名"をカレントディレクトリとして起動したコマンドプロンプト内で処理されるのである。そういう違いがVISTAとXPのバッチファイルの間にはあった。

 先のバッチファイルの場合、バッチファイルから呼ばれるスクリプトが、「バッチファイルがあるディレクトリがカレントディレクトリである」ことを前提としていたので、Windows VISTA では動くのに、Windows XPでは動かない、ということが起きた。

 いつものように、「思い込み」は危険だと思うと同時に、コマンドプロンプトやバッチファイルの沼も結構奥が深そうだ・・・と今さらながら感じたのである。このコマンドプロンプトやバッチファイルの「沼」に足を踏み入れてみるべきか、あるいは近寄らないようにするべきか・・・それが問題で思い悩んでいる。



■Powered by yagm.net