a.gifというファイルに、状態によってb.gifの内容をコピーしたり、c.gifの内容をコピーしたりしたいのですが、リファレンス本などをみるとそのようなコマンドはないようでした。
このようなことは実現できるでしょうか?
なにか良い方法をご存知の方、ぜひ教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

TSkasiwaさま、はじめまして。



>a.gifというファイルに、状態によってb.gifの内容をコピーしたり、
>c.gifの内容>をコピーしたりしたいのですが、リファレンス本などを
>みるとそのようなコマンド>はないようでした。
>このようなことは実現できるでしょうか?

ご質問の件ですが、ファイルをコピーする場合は、File::Copy を使うのが最も良いと思います。

#######################################################
use File::Copy 'copy';

copy ("ABC.gif", "DEF.gif");
# ABC.gif を DEF.gifへとコピーする
#######################################################

このように、Perlでは、MS-DOSのコピーコマンドに近い感覚で、
ファイルをコピーすることが出来ます。


又、現在のディレクトリ(を含めた下の階層)の一覧は、File::Find関数を
以下のように使用することで得ることができます。

#######################################################
use File::Find 'find';

find (\&wanted, "./");

sub wanted {
print "$File::Find::name\n";
# 現在のディレクトリ以下[サブディレクトリ含む]の全てのファイルを表示する
}
#######################################################

File::Find(\&wanted, dir1, [dir2 ...]) 関数

の詳細な使い方につきましては、
ネットや書籍などで、お調べになってみてください。
いろいろな便利なオプションがございます。

又、perlの一般的な関数である、readdir関数を使用しても
ほぼ同様の効果が得られますので、こちらも良いと思います。


最後に、簡単な正規表現や判定文などを加えると次のようなサンプルができます。

#######################################################
use File::Copy 'copy';
use File::Find 'find';

find (\&wanted, "./");

sub wanted {
if (/.+\.gif$/) {
$File::Find::name =~ s|^./||;
copy ($File::Find::name, "E:\\$File::Find::name");
# 現在のディレクトリの *.gif ファイルをE:\フォルダにコピーする
}
}
#######################################################

いかがでしょうか? ご参考になれば。
何か、ご不明な点などありましたら、ご遠慮なく補足してください。
    • good
    • 0
この回答へのお礼

ありがとうございます。
これがやりたかったのです。
File::Find(\&wanted, dir1, [dir2 ...]) 関数 を調べてこれからどんな風につかえるか、というのを勉強しようと思います。
本当にありがとうございました。

お礼日時:2001/10/16 15:03

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QA4-2枚集約→A4-1枚にコピーしたいです

いつもお世話になっております。

A4に2枚集約(2アップ)にしてある資料を、A4に1枚裏表にコピーし直したいです。
【元の資料】A4 左側No.1 右側No.2となっているものを(裏は白紙)、
【出来上がり】A4 表No.1 裏No.2にするということです。

【元の資料】をA3に拡大して折ればいいのですが、それだとかさばってしまい、できればA4両面にしたいです。
あと、かなり枚数があるので、できればA3で出力して裁断して節約したいのですが、これは難しいですよね。
【元の資料】A4に、一枚目No.1とNo.2、二枚目No.3とNo.4…となってますから。

コピー機はキンコーズに行くので、性能はいいはずです。

コピーがお得の方、知恵をお貸しください。

Aベストアンサー

キンコーズのコピー機がわかりませんが、多分最新かつ高性能の
機械が入っているはずです。

最近はコンビニなどのコピー機でも両面コピーが可能です。
最初に両面コピーを選んでコピーすれば、1枚目のスキャン、
2枚目のスキャンの順で手順が示されます。
ちょっと難しいのは表面と裏面の上下あわせくらいです。

QA.cgiで認証チェックされてから、B.thmlが表示されるようにしたい。

1/17付CGIについての質問の関連です。
質問はパスワード付forum.cgi(付録フリーCGI)で、forum.cgiを入室後、ID&PW情報をA.cgiに渡したまま、新しいHTMLウィンドウを立上げることでした。
この質問は、こちらの教えてGOOでご教授いただきました。ありがとうございます。
できたCGIでは、A.cgiでID&PWを入力しないでも、B.thmlが表示されてしまいます。

# ID/PW認証 #
sub pass_check {
local($time,$time2,$inpw,$flag,$id,$pw,$check);

# 時間を取得
$time = 略;

$timeout = 略;
$password = '略';
$pwdfile = '略;
#中略
if ($in{'id'} eq "") {
&header;
print "<table><tr><td>\n";
print "<td><form action=\"$script\" method=\"GET\"onsubmit=\"window.open('B.html,'new')\">\n";

print "<tr><th><UL><LI>すでにパスワード取得済みの方は・・・略
print "<tr><th>ログインID<th><input type=text name=id size=8></tr>\n";
#中略
print "<tr><th colspan=2><input type=submit value=' 認証する '></tr>\n";

#中略
if ($in{'pw'} eq "") { &error("パスワードの入力モレです"); }

$flag=0;
open(IN,"$pwdfile") || &error("Open Error : $pwdfile");
while (<IN>) {
($id, $pw) = split(/:/);
if ($in{'id'} eq $id) { $flag=1; $pw=~s/\n//; last; }
}
close(IN);
if (!$flag) {&error("該当のIDは見当たりません"); }

$check = &decrypt("$in{'pw'}", "$pw");
if ($check ne "yes") { &error("パスワードが違います"); }

# パスワードを第2暗号化 以下略
}
認証の送信をしたときに、エラー時エラーメッセージに飛ぶ(分岐する?)にはどういう記述にしたら良いでしょうか?
見にくいかもしれませんが、どんなヒントでも結構ですので宜しくお願いします。

1/17付CGIについての質問の関連です。
質問はパスワード付forum.cgi(付録フリーCGI)で、forum.cgiを入室後、ID&PW情報をA.cgiに渡したまま、新しいHTMLウィンドウを立上げることでした。
この質問は、こちらの教えてGOOでご教授いただきました。ありがとうございます。
できたCGIでは、A.cgiでID&PWを入力しないでも、B.thmlが表示されてしまいます。

# ID/PW認証 #
sub pass_check {
local($time,$time2,$inpw,$flag,$id,$pw,$check);

# 時間を取得
$time = 略;

$timeout = 略;
$password = ...続きを読む

Aベストアンサー

こんにちは。

普通は、onsubmitのwindow.openをやめて、target="_blank"ですか・・・。
B.htmlはcgiの中でリダイレクトさせればいいかと思います。
つまり、
1.Formのsubmitボタンを押す。
2.forum.cgiが呼ばれる。この時、targetは_blankにしておく。
3.チェックをパスしたら、cgiの中でB.htmlを呼ぶ。
4.B.htmlが新規で開く。
5.チェックがダメならエラー画面を呼ぶ。
6.ただしこの時に、エラー画面も新規で開くのが問題といえば問題・・・。

ここでの注意点は、cgiの分岐処理で、必ずどちらかに処理が流れる事。

こんなのしか思いつきません・・・。
(^^ゞ

Qコピー機でA4は縦と横どちらがよい?

コピー機の給紙トレイにA4の紙をいれますが、オフィスにあるものは横長方向に入っているものが多いです。
しかしA3がコピーできる場合、A4は縦長にいれ、縦長に読み込んでコピーしたほうがドラムを通過する距離が短くなって、速度UPとドラムの寿命を長くすることができるような気がします。それでも通常横長に入っているのでこれには何か意図があるのでしょうか?

意味不明な質問ですがよろしくお願いします。

Aベストアンサー

お考えの通り、事務機業界ではA4縦長(というか、これをA4横送りと言います)が標準で、マシンもそれを想定して設計されています。速度を表現する場合も当然A4横送りで比較します。

では縦送りの用途ですが、これはA3からA4の縮小コピーで必要になります。
特にアナログ方式のコピー機ではこれは必須で、A4横送りしか用紙がセットされていないと、A3からA4への縮小がまったく出来ません。

最近主流のデジタルコピー機では、画像を一旦記憶し、A4に縮小後、90度画像を回転させてから書き込むことが可能なため、実はA4縦送りのセットは不要です。
しかしながら、原稿自動送り装置に原稿をセットする際、A3、B4は縦送り、A4、B5は横送りというのがすぐに理解できないユーザーが多い会社では、いちいち説明が面倒なので、原稿の向きを全サイズ揃えた方が判りやすいため、A4、B5とも縦送りでセットするケースが多いです。

(実を言うと、デジタルコピーでは等倍コピー時も画像回転が可能ですから、本当は、原稿セットは縦送り統一でもA4、B5は横送りセットでOKなんですがね。。)

お考えの通り、事務機業界ではA4縦長(というか、これをA4横送りと言います)が標準で、マシンもそれを想定して設計されています。速度を表現する場合も当然A4横送りで比較します。

では縦送りの用途ですが、これはA3からA4の縮小コピーで必要になります。
特にアナログ方式のコピー機ではこれは必須で、A4横送りしか用紙がセットされていないと、A3からA4への縮小がまったく出来ません。

最近主流のデジタルコピー機では、画像を一旦記憶し、A4に縮小後、90度画像を回転させてから書き込むことが可能なた...続きを読む

Q非常に見にくいです.....

このジャンルであっているかどうか微妙ですが質問させていただきます。

よくフリーのCGIやPHPなどのテキストファイルをダウンロードしたとき、アップロード時に転送モードが悪かったのかどうか知りませんが、よく

#!/usr/bin/perl↑↑require './jcode.pl';↑require './cgi-lib.pl';↑↑.....................

のように改行部がすべて↑になってますよねぇ?
もし「戻りページ」など設定しなければならない部分があったりする時は非常に見にくくやりづらいのです。
そこでこの上の例を自動で

#!/usr/bin/perl

require './jcode.pl';
require './cgi-lib.pl';

に書き換えてくれるようなソフトがあったら教えて下さい!!

Aベストアンサー

CRLFではなくLFを改行に出来るエディタを使ってください。

TeraPadはできたかなあ

(俺はWHiNNYを使っているが開発終了している)

Qコンビニのコピー機で拡大 A4→A2

コンビニのコピー機で、A4→A2に拡大コピーは出来るんでしょうか?

A2用紙1枚で出来なくても、A4用紙を4枚出力でもいいのですが・・・

出来るのであれば、やり方を教えて下さい。
宜しくお願いします。

Aベストアンサー

セブンイレブンだと
ポスター作成にすればできるでしょう

参考URL:http://www.sej.co.jp/services/copy.html

QブラウザのURLをコピーし.cgiファイルに貼り付けるとエラーがでます。

長いURLが必要なときに間違い防止のために、ブラウザのURLをコピーして、.cgiファイルに貼り付けるとエラーが出る現象はございますでしょうか?方法としてやってはいけないことなのでしょうか?教えてください。

Aベストアンサー

パターンマッチの事かな?だとしたら
#1さんのいわれるやり方もありますが
=~//; は
=~m||; と言う書き方も出来ます
=~s///; は
=~s|||; とも書けます
また . (ドット) や ? は正規表現で別の意味が生じてしまうのでそれを抑制するためには文字列の前に\Qを入れます。
参考例:
$u='http://oshiete1.goo.ne.jp/kotaeru.php3?q=2052204';
$u =~m|\Qhttp://oshiete1.goo.ne.jp/|;
print "\$&=$& \$u=$u<P>\n";
$u =~s|\Qhttp://oshiete1.goo.ne.jp/||;
print "\$&=$& \$u=$u";

参考URL:http://www.rfs.jp/sb/perl/02/09.html

QA4文書のコピー代について

子どもの関係で役員をしていますが、行事等の案内書を作成する係に
なっています。

A4にごく普通の案内文と、ちょっとした地図(カラー)をコピー
した場合、1枚あたりのコストはおいくら程でしょうか。
白黒のみでフォント10程度で埋めた場合はいかがでしょう。

機種はキャノンMP500(インクジェット)です。
(メーカーに問い合わせしましたが、情報が足りないため回答不能
とのことでした。ですので、おおよそでも知りたいのですが)
行事も年に数回あり、その都度30枚ほどコピーし、今回まとめて
の請求となり困っています。
よろしくお願いいたします。

Aベストアンサー

 原稿用紙は無料。コンビニでコピーで10円。
 自宅プリンタですると安くはなりますが、ただ同然扱いになりかねません。主に用紙代ぐらいでしょうか?
 金額をはっきりさせたいのであればコンビニでコピー。5円の所もありますね。後はレジで領収書を発行してもらう、領収書の発行もしてくれるものもコンビニではある。

 プリンタでははっきり言ってわかりません。印刷面はどれぐらいの割合かでも変わります。だからわかりませんとしか言えません。
 色が分離しているとわかりやすいのですが、複数の色を一つのカートリッジで使用する形ですと、他の色が大量余っていても一色がだめだとすべて駄目になることがあります。

 私は用紙代を請求する程度です。用紙も安いものを使用していますのでボランティアの状態でもありますが。

Qcgiなんですが....

http://www.kent-web.com/data/mart.html
cgiの買い物かごシステムなのですが、下記のディレクトリ構成例のpublic_htmlってなんでしょうか?自分のレンタルサーバーではトップページ
を表示するにはftpソフトでつなぐとhttpdocsってホルダにindex.htmlをいれますが、そこにpublic_html って書いていれれば、いいのですかね?cgiつくりにダウンロードしたものはmart.cgi,mart_order.cgi ,mart_admin.cgi
mart_init.cgi ,mart.dat ,mart_raw.txt mart.html なんですが、public_html っていうのがみあたりません。
public_html のフォルダの中にホームディレクトリ?がある構成に見えるし、なんでしょう?mart / mart.cgi [755] mart_order.cgi [755]
mart_admin.cgi [755]mart_init.cgi [644]
jcode.pl [644]mart.dat [666]
mart_raw.txt [644]cgiのフォルダにpalのパスかえたり、してパーミッション設定してあげれば、良いのでしょうか?絵では下のような説明になっています。
【ディレクトリ構成例】
public_html / (ホームディレクトリ)
|
+-- mart / mart.cgi [755]
mart_order.cgi [755]
mart_admin.cgi [755]
mart_init.cgi [644]
jcode.pl [644]
mart.dat [666]
mart_raw.txt [644]

http://www.kent-web.com/data/mart.html
cgiの買い物かごシステムなのですが、下記のディレクトリ構成例のpublic_htmlってなんでしょうか?自分のレンタルサーバーではトップページ
を表示するにはftpソフトでつなぐとhttpdocsってホルダにindex.htmlをいれますが、そこにpublic_html って書いていれれば、いいのですかね?cgiつくりにダウンロードしたものはmart.cgi,mart_order.cgi ,mart_admin.cgi
mart_init.cgi ,mart.dat ,mart_raw.txt mart.html なんですが、public_html っていうのがみあたりませ...続きを読む

Aベストアンサー

ページ確認しました。
httpdocsに通常ページを保存し、cgi-bin にCGIを保存するタイプですね。
ただ、
「cgi-bin ディレクトリ以外でも cgi スクリプトは実行できますので別にCGI専用のディレクトリを作成することもできます。」
とあるので「httpdocs」に「cgi-bin」フォルダを作っても同じことのようです。
こちらのほうがフォルダ構成を把握しやすいのでお勧めです。
httpdocs┬─index.html・その他コンテンツページ
    │
    ├image(画像保存フォルダ)
    │
    └cgi-bin─mart─ここにCGIファイルを保存

こんな感じですね。

QA3まで対応のコピー機ってA4も印刷できるんですか

題名の通りですが
「A3まで対応」と書いてあるコピー機はA4の印刷も可能なのでしょうか?
いまいち紙のサイズについて詳しくないのですが
A3が印刷可能なら当然A4も印刷できますよね?

よろしくお願い致します。

Aベストアンサー

リ○ー の使ってますが A3(大)から はがきサイズ(小)までなら 出来ます。
なので A4も当然出来ますよ。
購入するときに、ブ○ザ-も 検討しましたが やっぱり出来るようでした。
私は B5までしかした事ありませんが・・・。

Q透明GIFが

Lime Counter+W v4.4
http://www.cj-c.com/
というページカウンターを設置しています。カウントしたいページに<img src="cgi-bin/lime.cgi?page=1&name=ページ名">とタグを入れるのですが、通常なら、ダミーGIF画像(透明GIF)になって、なにもページには現れないはずなのですが、あの画像がない時に現れる×点が現れてしまいます。これの原因と対処法、なにかヒントになるようなことでもかまいませんので、お教えください。

Aベストアンサー

cgi-bin以下にcgiを設置されているようですが、cgi-bin下にgifファイルを設置してもいい仕様なのか調べてみたほうがいいのではないでしょうか?


人気Q&Aランキング

おすすめ情報