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ランキング
-
Windows10でコマンドプロンプト...
-
サーバ内のフォルダ名と各フォ...
-
ディレクトリ名変更してコピー...
-
【マクロ】ファイル名の日付に...
-
フォルダ名とテキスト内容の置...
-
DLLの暗黙リンクの調べ方
-
複数のテキストファイルの結合方法
-
【マクロ】フォルダにファイル...
-
多量のファイルをフォルダに自...
-
ファイル名と同名のフォルダを...
-
期間を指定したフォルダの削除...
-
Excelで指定したフォルダに保存...
-
.PST形式ファイルが格納されて...
-
META-INFフォルダの置き場所に...
-
VS2005で"定義へ移動"ができません
-
エクセル VBA ファイルをフォ...
-
自動的に作られるresource.hに...
-
「フォルダの参照」ダイアログ...
-
デスクトップの画像をhtmlに表...
-
最下層のファイルを一緒の階層...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
windowsでテキストファイルの各...
-
VBA 最新のフォルダ取得
-
ファイル名と同名のフォルダを...
-
デスクトップの画像をhtmlに表...
-
VBA フォルダ名に特定の文字を...
-
Excelのハイパーリンクについて...
-
フォルダ内のPDFファイル名を変...
-
Excelで指定したフォルダに保存...
-
会社のネットワーク上のファイ...
-
【マクロ】ファイル名の日付に...
-
保存先のフォルダ名を指定した...
-
多量のファイルをフォルダに自...
-
パス名に2バイト文字(マルチバ...
-
ディレクトリ名変更してコピー...
-
C ファイル出力で、フォルダが...
-
Access VBA で フォルダ権限...
-
サーバ内のフォルダ名と各フォ...
-
フォルダにリンクを貼りたい
-
vbsで選択ダイアログを表示した...
おすすめ情報
Tacosan様 回答ありがとうございます。
別にバッチファイルでも構いません。
バッチファイルだとどのようになりますかね?何分今まで力業でやってきたためプログラムやバッチファイル初心者なのです。
教えていただけるとありがたいです。