
Perlのプログラムを作りたくて質問させていただきます。
1.『AAA』というフォルダ下に「01~04」までのフォルダを作る
2.「AAA」のフォルダ下に「BB」というフォルダがあり、その下に[***_01.bz2][***_02.bz2][***_03.bz2][***_04.bz2]というファイルがあります。
『AAA/BBB/***01.bz2』~『AAA/BBB/***04.bz2』
これら4つのファイルをコマンド「bunzip2」を使用して解凍する。
3.解凍したファイル[***_01]を「01」のフォルダに移動
[***_02]を「02」のフォルダに移動
[***_03]を「03」のフォルダに移動
[***_04]を「04」のフォルダに移動
こういった内容をプログラムを作りたいのですが、勉強不足で色々うまくいきません。
どのように作ればいいか教えていただけるとありがたいです。
ちなみにOSは「Windows10」です。
どなたかどうぞよろしくお願いします。
No.3ベストアンサー
- 回答日時:
以下のスクリプトを実行し下さい。
$dir = "d:\\goo\\perl\\AAA"; #AAA
mkdir($dir . "\\01");
mkdir($dir . "\\02");
mkdir($dir . "\\03");
mkdir($dir . "\\04");
$dirBB = $dir . "\\BB"; #BB
$ret = opendir(DH,$dirBB);
if ($ret == 0){
die "opendir <<$dirBB>> error: $!";
}
@list = readdir(DH);
closedir(DH);
foreach $fname (@list){
if ($fname =~ /^(.+_)(0[1234])\.bz2$/){
$trgfile = $1 . $2;
$trgdir = $2;
$cmd = "bunzip2 " . $dirBB . "\\" . $fname;
system($cmd);
$oldf = $dirBB . "\\" . $trgfile;
$newf = $dir ."\\" . $trgdir . "\\" . $trgfile;
$ret = rename($oldf,$newf);
if ($ret == 0){
die "rename <<$oldf -> $newf>> error: $!";
}
}
}
使用時の注意事項
$dir = "d:\\goo\\perl\\AAA"; #AAA
は、『AAA』というフォルダです。
あなたの環境にあわせて適切に設定してください。
(絶対パスで指定します)
$dirBB = $dir . "\\BB"; #BB
は「BB」というフォルダです。
あなたの環境にあわせて適切に設定してください。
(相対パスで指定します)
No.1
- 回答日時:
1. mkdir
2. opendir/readdir/closedir, system
3. rename もしくは bunzip2 -c オプションでリダイレクション指定
参考)
https://perldoc.jp/func/mkdir
https://perldoc.jp/func/readdir
https://perldoc.jp/func/system
https://perldoc.jp/func/rename
https://linuxjm.osdn.jp/html/bzip2/man1/bzip2.1. …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- デスクトップパソコン フォルダ内のファイル移動が出来ません 3 2022/10/16 05:42
- Excel(エクセル) ファイル一覧表を使ったファイルの移動 5 2022/08/10 15:37
- Excel(エクセル) 2つのマクロを連続して動かしたい 3 2022/09/20 23:46
- Excel(エクセル) 【VBA】フォルダAにある2つのファイルの内1つを、フォルダBへ。もう1つを、フォルダBへ移動したい 6 2022/07/26 08:51
- Excel(エクセル) 【VBAファイル移動】2つのマクロを順に実行。1つ目のマクロが実行不可⇒2つ目が実行不可となる件 2 2022/07/29 12:17
- Visual Basic(VBA) 【マクロ】フォルダにファイルが1つも無い時に、ファイルがありませんとメッセージを表示する 4 2022/08/28 08:48
- Excel(エクセル) フォルダAから1つのファイルだけを、フォルダBへを移動するVBAについて 2 2022/07/25 11:45
- Excel(エクセル) 【マクロ】ファイルを古い順に、1個ずつ移動する 1 2022/09/06 20:30
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
- システム パソコンの共有フォルダ移動について教えてください。 2 2022/04/07 10:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Perlのプログラムについて
-
Perlのエラーについてご教授く...
-
Perlで一定値以上の場合にデー...
-
このファイルを開く方法で困っ...
-
perl の open について教えてく...
-
Perl言語について。
-
ファイルをディレクトリ分配の...
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlでリテラル値はメモリにど...
-
perlで2次元配列をサブルーチ...
-
Perlで時間の計算
-
perlについて
-
perlのrequireの動き方について...
-
perlの構文でカンマの意味が分...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストファイルで提出とは?
-
openした後、closeしないでプロ...
-
Perlのエラーについてご教授く...
-
INDIRECT 横に再度抽出したい
-
bashスクリプト
-
perlをバージョンアップしたら...
-
perlプログラミング 空白行削除
-
Wallpaper Engineでおすすめの...
-
perlのflock関数でロックをかけ...
-
Strawberry Perl for Windows ...
-
フローチャート 九九
-
perlについての質問
-
ターミナルで特定の文字と文字...
-
LinuxにおいてのPerlのプログラ...
-
P.Cのシングルチューナーとダブ...
-
PerlでUTF-8のファイルの文字列...
-
【超初心者】異なるディレクト...
-
perlで複数のファイルの処理に...
-
Perl 順位の重複
-
Perlで特定文字列から特定文字...
おすすめ情報
Tacosan様 回答ありがとうございます。
別にバッチファイルでも構いません。
バッチファイルだとどのようになりますかね?何分今まで力業でやってきたためプログラムやバッチファイル初心者なのです。
教えていただけるとありがたいです。