作者: dune
日時: 2004/2/24(01:05)
極悪です。

>  ご指示どおり何度か間違いないか工夫しながらやったんですが、
>  瞬時にDOS窓が閉じてしまい、音沙汰も出力もありませんでした。

ということはバッチファイルを作ってマウスでクリックして実行し
てますね。jperl か kctrans が DOS 窓にエラーメッセージを表示
しているはずなので、それを読み取ってもらわないと対処できませ
ん。



>16ビットソフトでも、ロングファイル名が構わず使えるようにな
>ると、良いですね。

f3kctrans.pl です。

--^ ここから
#!/usr/local/bin/jperl
#use strict;

@ARGV == 0 and die << "__HELP__";
使い方:jperl $0 in_dirname out_dirname
    99/5/29(Sat) 11:09am FGALTS 藤岡 和夫(JBD01136)
      TS Networkのために
      http://www.mars.dti.ne.jp/%7Ekazuf/index.htm
__HELP__

END{ unlink qw(in.$$$ out.$$$) }
my($indir,$outdir)  = @ARGV;

opendir(DIR,$indir) or die qq/$indir : $!\n/;
my @file    = sort grep{ m/\.\w+$/ } readdir DIR;
closedir DIR;

if(!-d $outdir){
    mkdir($outdir,0666) or die qq/$outdir : $!\n/;
}

my($file,%catfile);
foreach $file (@file){
    my $infile  = "$indir\\$file";
    my $outfile = "$outdir\\$file";
    
    $outfile =~ s/^([0-9]+[a-z_])[^\.]+\..*$/$1.txt/i;
#   $outfile =~ s/^([^a-z_]+[a-z_])[^\.]+\..*$/$1.app/i;
#   $outfile =~ s/^([^a-z_]+)[a-z_][^\.]+\..*$/$1.txt/i;
#   $outfile =~ s/^([^_]+)_[^\.]+\..*$/$1.app/i;
    
    print "cat $file => $outfile\n";
    open(IN,$infile) or die qq($! : $infile\n);
    open(OUT,">>$outfile") or die qq($! : $outfile\n);
    local $/;
    print OUT <IN>;
    close IN;
    close OUT;
    
    ++$catfile{$file};
}

chdir $outdir or die qq($outdir : $!\n);
foreach $file (keys %catfile){
    print "kctransing $file";
    rename($file => 'in.$$$') or die qq($file : $!\n);
    system q(command.com /C kctrans.exe -S2 -G0 in.$$$ out.$$$);
    rename('out.$$$' => $file) or die qq($file : $!\n);
}

__END__
--^ ここまで
-- 
極悪, FZH01112 at nifty.com
http://hpcgi1.nifty.com/dune/gwiki.pl?