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でコマンドプロンプト...
-
VBA 最新のフォルダ取得
-
Access VBA で フォルダ権限...
-
【マクロ】ファイル名の日付に...
-
保存先のフォルダ名を指定した...
-
フォルダにリンクを貼りたい
-
フォルダを開いて、閉じるのプ...
-
Excelで指定したフォルダに保存...
-
フォームを最前面に表示したい...
-
エクセルVBA ファイル名とタイ...
-
パス名に2バイト文字(マルチバ...
-
ExcelのVBAでフォルダ指定がで...
-
会社のネットワーク上のファイ...
-
バッチファイル フォルダを...
-
エクセルのデータをメモ帳に貼...
-
クラウドにあるフォルダを共有...
-
EXCELのセルにフォルダのパスの...
-
VBAにてツリー階層表示ツールの...
-
フォルダ選択ダイアログ:ネッ...
-
C ファイル出力で、フォルダが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
VBA 最新のフォルダ取得
-
バッチファイルが保存されてい...
-
ファイル名と同名のフォルダを...
-
【マクロ】ファイル名の日付に...
-
VBA フォルダ名に特定の文字を...
-
デスクトップの画像をhtmlに表...
-
フォルダ内のPDFファイル名を変...
-
ディレクトリ名変更してコピー...
-
多量のファイルをフォルダに自...
-
Excelで指定したフォルダに保存...
-
Access VBA で フォルダ権限...
-
C ファイル出力で、フォルダが...
-
Excelのハイパーリンクについて...
-
あるフォルダーのファイルを違...
-
パス名に2バイト文字(マルチバ...
-
同一フォルダ内の別ブックから...
-
エクセルのマクロについて教え...
-
バッチファイルで指定フォルダ...
-
ExcelのVBAでフォルダ指定がで...
おすすめ情報
Tacosan様 回答ありがとうございます。
別にバッチファイルでも構いません。
バッチファイルだとどのようになりますかね?何分今まで力業でやってきたためプログラムやバッチファイル初心者なのです。
教えていただけるとありがたいです。