> 2001/03/23 (金) 20:42:22 ◆ ▼ ◇ [mirai]> > つか、これ何?
> (ρ_;) グサ
use Cwd("getcwd");
use IO;
use strict;
use Win32API::File(":Func");
our($sfile,$hdir,@sfiles);
$hdir = new IO::Dir(getcwd());
# ファイル名取得
foreach $sfile ($hdir->read()) {
-d($sfile) || push(@sfiles,$sfile);
}
foreach $sfile (@sfiles) {
# ファイル名、連番、拡張子に分割
my($sfname,$nnumber,$ssfx) = ($sfile =~ m/(.*[^\d])(\d+)(\..*)$/);
if (($sfname ne '')
&& ($ssfx ne '')
&& ($nnumber ne '')
&& (length($sfname . $nnumber . $ssfx) == length($sfile))) {
# 全文字数分きちんと拾えておれば
$sfname =~ s/_?$//;
# 存在しなければmkdir()
-d($sfname) || mkdir($sfname) || die "fault mkdir: $!";
# ファイルをそこへ移動
MoveFile($sfname,"${sfname}\\${sfile}") || STDERR->print("fault copy $sfile: ",fileLastError());
} else {
# うまく分割できなかった
STDOUT->print(
"ORIGIN:[$sfile]",
"NOMATCHED",
"\n"
);
}
exit;
}
あんたのアイディアも取り入れて完成…のつもりだったんだが
"プロセスはファイルにアクセスできません。別のプロセスが使用中です。"
と出て動かねぇよ。当方Win2K。
参考:2001/03/23(金)20時19分13秒