hirax.net::Keywords::「DOS」のブログ



2004-04-21[n年前へ]

「ATOK Perlプラグイン(dos,ruby,awk,その他大勢)」のオマケが豪華に。 

竹内均 ATOKからテキスト・画像の操作が自由自在のATOK Perlプラグイン(dos,ruby,awk,その他大勢)をアップデートしました。サンプル・プログラムも「画像読み込み」「漢字アート」「アスキーアート」「美人フィルタ」「ブサイクフィルタ」等豊富に揃っています。各コマンドプログラムもオプション等を増やしました。また、デフォルトの設定ファイルをperl用でなく、DOSプロンプト用にしておきましたので、perl等を使わない方も楽チンです(ちょっともったいない使い方だとは思いますが)。

 これを使えば、Windows標準添付のノートパッドが数式処理のMathematicaになったり、画像処理のPhotoshopになったり、エクセルになったり、…可能性は無限大(ちょっとウソ)です。ソフトをわざわざ切り替える世界なんて、不便ですよねぇ?漢字もプログラムの別名として使えるというのも結構面白いですよ。

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では動かない、ということが起きた。

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

2010-09-12[n年前へ]

WindowsのコマンドプロンプトのCOPYコマンドの結合順序の謎 

 以前から、時折思い返す疑問が「Windowsのコマンドプロンプトから動かすCOPY copy a.txt+b.txt c.txt と入力すると、a.txtの後ろにb.txtを結合した結果をc.txtとして作成する、…はずだと思っています。バイナリファイルのオプション/Bを付けなければ、ファイル途中のEOFは削除され・末尾にEOFが一個付くように処理され、/Bを付けると、

copy /b a.txt+b.txt c.txt
EOFの除去・付加処理がなされない、という具合に動くのだと、最初は思っていました。

 しかし、COPYコマンドを使っていると、ファイルの結合順序が、指定した順番になっていないことも多いことに気が付きました。結合されたファイルは、何だか妙な具合にシャッフルされていることがあるのです。

 最初は、何かの不具合で(テキスト)ファイルの途中にEOFが入り込んでいるせいかと考えました。そこで、/Bオプションを付けてみましたが、それでも、指定したはずの順番でファイルの内容が並んではくれないのです。

 思うように動いてくれたとしたら、COPYコマンドはとても便利だと思うのですが、思うように動いてくれないとただの使えないコマンドになってしまいます。WindowsのコマンドプロンプトのCOPYコマンドの結合順序はどのように決まっているのでしょうか?思いのままに動かそうとしたならば、どのように使えば良いのでしょうか? その答えをご存知の方がいらっしゃいましたら、教えて頂ければ幸いです。



■Powered by yagm.net