作者: WATANABE Hirofumi
日時: 2004/9/27(11:26)
わたなべです。

"T.Watanabe" <wtnabe@...> writes:

> >  また、.bat以外にも.cmdでバッチファイルが書けますし、登録さえしておけば、
> > .pyとか.awkとか自由に設定できます。
> 
>   マジすか!?
> 
> 連載:Windows 2000コマンドライン徹底活用 第3回 スクリプト入門 (その1)
> http://www.atmarkit.co.jp/fwin2k/operation/command003/command1.html
> 
>   かな?  環境変数 PATHEXT ?
>   あ、違うか、関連づけ?
> 
>   簡単に手順を教えてもらえませんか。わざわざ SOS で .com 化してました(^^;

assocとftypeを使います。あえてそのまま間違ったとこも載せとこう。

D:\tmp>assoc .awk=AwkScript
.awk=AwkScript

D:\tmp>ftype AwkScript=d:\cygwin\bin\gawk.exe %1 %*
AwkScript=d:\cygwin\bin\gawk.exe %1 %*

D:\tmp>echo BEGIN{print "Hello, World"} > hello.awk

D:\tmp>set PATHEXT=%PATHEXT%;.awk

D:\tmp>hello
gawk: D:\tmp\hello.awk
gawk:  ^ syntax error
gawk: D:\tmp\hello.awk
gawk:   ^ backslash not last character on line

D:\tmp>ftype AwkScript=d:\cygwin\bin\gawk.exe -f %1 %*
AwkScript=d:\cygwin\bin\gawk.exe -f %1 %*

D:\tmp>hello
Hello, World

すでに関連付けされていれば例の@itの記事の通りPATHEXTだけでいいです。
たとえば
  set PATHEXT=%PATHEXT%;.TXT
とすればreadme.txtもreadmeだけで開けます。

ただしリダイレクトすると標準入力の扱いはなんか変です。

D:\tmp>echo 1 > xcat.awk

D:\tmp>xcat hello.awk
BEGIN{print "Hello, World"}

D:\tmp>xcat < hello.awk

このあたりはruby-talkでも頻繁に話題になってる。たぶんMSのバ
グだろうと。

-- 
わたなべひろふみ