• 締切済み

renameについて

”ABCDEF”というフォルダに入っている3つのファイルの名前を それぞれ”01,02,03”にしたいとき下記のプログラムで大丈夫ですか? というか、完成していますか? 他にしなくてはいけない事や間違いがあったら教えて下さい。 #! c:/perl/bin/perl $abcdef = './ABCDEF/'; $newname = 01 02 03; foreach $abcdef (@NAME) { my $newname = $abcdef; rename($abcdef,$newname) or warn "Couldn't rename $abcdef to $newname: $!\n"; } パソコン初心者で困っています。実際に実行したくても ”ページが見つかりません”になって確認できないし・・・ インストールは正常に出来たはずなのに・・・ 何でですかね? あと、フォルダに入っているもっと多くのファイル名を変えるとき(1000個とか) にはどうしたらいいんですか? 宜しくお願い致します。

みんなの回答

noname#45976
noname#45976
回答No.2

ううう。^^; これは、、、意味わからないで書いてますね? どこがどう違うとか言う前に、変数の概念からあやういかも、、、。 パソコン初心者でいきなりcgiは難しいですよ。>< まずはPCの基礎、それからプログラムの基礎を勉強し、その上で実際にやってみてわからくなった部分の質問をすると、有効な回答を得られますよ。^^ 道は遠いですが、誰もが通る道なので、頑張ってくださいね。 ちなみに、「ページが見つかりません」という表示どおり、ファイルが指定した場所にないのだと思います。 参考書通りやっている、とのことですが、ファイルのアドレスは自分のPC環境に合わせて指定していますか? 全て参考書の通りに入力してはダメですよ?(そのくらい知ってるよ~とか言われそうですが^^;) もしくは、アドレスに打ち間違いがないか確認してみてください。

全文を見る
すると、全ての回答が全文表示されます。
  • wolv
  • ベストアンサー率37% (376/1001)
回答No.1

> パソコン初心者で困っています。実際に実行したくても > ”ページが見つかりません”になって確認できないし・・・ どうやって実行してますか?

serus
質問者

補足

>どうやって実行してますか? Apacheを起動してから、メモ帳でプログラムを作り、 Internet ExplorerでURIを指定しています。 一応、手持ちの参考書通りにインストールして、 実行手順もその通りにしているんですけど・・・

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ファイル名変更ができません

    こんにちは。Perl(超?)初心者です。 フォルダ内にあるファイルの名前を、「filename_ja.txt」という形式から「filename_en.txt」に変更するスクリプトを書こうとしているのですが、エラーになってうまくいきません。 環境は、Windows XP professional SP3とActivePerl 5.10 で、以下のように記述しました。 use strict; use warnings; my @filename = glob "*.txt"; foreach my $oldname(@filename) { my $newname = $oldname; $newname = ~s/(.+)_ja\.txt/$1_en\.txt/; rename ($oldname,$newname); } これを実行すると、「Use of uninitialized value $_ in substitution (s///) at test_5.pl line 8.」とエラーメッセージが出て、フォルダ内のテキストファイルが消失してしまいます。 また、以下のようにも書いてみたのですが、やはりうまくいきません。 この場合は、エラーこそ出ないものの、なにも起こりません。 use strict; use warnings; for(<\.txt>) { my $old=$_; s/(.+)_ja\.txt/$1_en\.txt/; rename($old,$_); } 初歩的な質問で申し訳ありませんが、ダメな生徒にアドヴァイスを与えるつもりで、スクリプトを添削していただけるとありがたいです。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • rename関数で名前の変更が出来なくなりました

    こんにちは。 C言語でHTMLのひな形を作ってHTMLを作っています。今回、少しC言語のソースを買えただけでC言語のrename関数が失敗するようになってしまいました。 バレが怖いので下記しか書けません。質問なのに申し訳ございません。 if (rename("after_oomoto.txt", html_name)==0){ printf("htmlファイル名変換完了\n"); }else{ printf("htmlファイル名変換不可\n"); printf("レビューファイルがキチンと作成されていない可能性があります。処理を終了します。\n"); system("pause"); // return; } ちなみにhtml_nameは改行とnull文字は付いていません。また、ファイル名にutf-8やshift-jisがあるのかも知りません。 こんな少ない情報ですが、どなたかアドバイス頂けないでしょうか。 よろしくお願いいたします。

  • C言語を使用し、同じ内容のファイルを増やす

    始めまして、ちょっと困っている事があります。 今現在Cで、あるプログラムを作ってます。 さて困っている内容ですが、testと記述されているテキストファイルを増やす所で困ってます。 「test」と記述されている「test.txt」を記述内容は同じで 「test01.txt」「test.02.txt」「test03.txt」・・・ と増やすにはどのようにプログラムを書けば宜しいでしょうか? *因みに、こちらが作成してみたプログラムです。 renameを使用して元のファイルを変えていく感じでやっていましたが・・ #include <stdio.h> #define MANGA 10 /*int main(void) { char oldname[256] = "bace00.html", newname[256] = "bace01.html"; FILE *fp; int i,a; printf( "%s\n", newname ); for( a = 0; a < MANGA; a++ ){ printf( "%d",a ); printf( "%s\n", newname ); rename(newname, "bace02.html"); printf( "%sあああ\n", newname ); //rename(oldname, newname) //newname[256] = "bace"; for( i = 0; i < MANGA; i++ ){ fp = fopen( "bace00.html","w" ); fprintf( fp, "<html>\n<title>%s</title>\n<head>\n</head>\n</html>\n" ); fclose( fp ); */ /* ファイル名の変更 */ /* if (rename(oldname, newname) == 0){ printf("%s のファイル名を %s に変更しました。\n", oldname, newname); }else{ perror("rename error"); } } } return 0; }*/

  • PerlをWinで使いたい。

    当方のパソコンのOSはWin XP SP2 です。 Perlの勉強を始めようと思いまして、 PerlがWinで使えるということなので、 Perl for Win32 Base Build 316 の日本語対応版をダウンロードしました。 C:\Perl\bin\フォルダの中のファイルは以下の通りです。 Jperl.exe Perl300.dll PerlGlob.exe XPerl.exe XPerlGlob.exe 別に中身が以下のようなtest.txtファイルを作りました。 $name = "KENT"; print "my name is $name", "\n"; print 'my name is $name', "\n"; それで、test.txtをJperlのアイコンにドラッグしました。 ms-dosの画面は出るのですが、何も表示されません。 お助け下さい。・・・m(_ _)m

  • for文の中でエラーが出てしまいます。

    Perl初心者で、1から勉強始めました。 質問ですが、 #!c:\perl\bin\perl -w use strict; print "Content-type: text/html\n\n"; my %data1 = ( 'id','ID001', 'name','たなか', 'birthday','1970/10/10' ); my %data2 = ( 'id','ID002', 'name','すずき', 'birthday','1972/03/21' ); my %person = (\%data1,\%data2); for (my $i=0; $i<@person; $i++) { my %row = %{$person[$i]}; print "$row{'id'}:$row{'name'}($row{'birthday'}生)<br>\n"; } テキスト通りにやっているつもりですが、のforの中でエラーが出てしまいます。見直してもどこが悪いか分かりません。誰かお暇な方教えてください。お願いします。

    • ベストアンサー
    • Perl
  • 何故?Forbidden

    infoseek/iswebを利用している者です。 FFFTPを使用し、ASCIIモードでcgi-binフォルダに転送、 ブラウザ上からiswebのファイルマネージャーにアクセスし、 アップロードしたファイルを閲覧するとForbiddenエラーになります。 kent-webで配布されているperlのバグチェックのツールを使用すると SyntaxOK と出ています。 こういうようなプログラムです。 #!/usr/local/bin/perl use strict; my $hensu=100; if($hensu == 100){print "hensu = $hensu<br>\n";} my $hensu2 = 'aa'; my $hensu2_1 = $hensu2 + 1; print "hensu2 = $hensu2_1<br>\n"; my $hensu3 = '10A0'; my $hensu3_1 = $hensu3+1; print "hensu3_1 = $hensu3_1<br>\n"; 一体何がおかしいのか分かりません。 どなたか回答お願いします。

    • 締切済み
    • CGI
  • 「Learning Perl」(第4章、問3)

    Perl初心者です。 「Learning Perl」(オライリー社、第5版)を勉強中なのですが、4章の練習問題3でつまずいています。 #!/usr/bin/perl use strict; sub total { my $sum; foreach (@_) { $sum += $_; } $sum; } sub average { if(@_ == 0) {return} my $count = @_; my $sum = total(@_); $sum/$count; } sub above_average { my $average = average(@_); my @list; foreach my $element (@_) { if($element > $average) { push @list, $element; } } @list; } my $average = average(100, 1..10); print "\$average = $average\n"; my $barney = above_average(100, 1..10); print "\$barney = $barney\n"; とやったのですが、結果が $average = 14.0909090909091 $barney = 1 となってしまいます。 ($averageの値は正しいのですが、$barneyの値が100となってほしいのに、1になってしまっています。) すみませんが、識者の方、どこが悪いのか、ご教授お願いします。

    • ベストアンサー
    • Perl
  • 以下のperlのプログラムについて

    以下は、多くのファイルの名前を一度に変更するための プログラムのはずなのですが・・・(参考書からもってきました) 分からないところがあるので教えて下さい。 #! /usr/bin/perl/ $op = shift or die"Usage: rename expr [files]\n"; chomp(@ARGV = <STDIN>) unless @ARGV; for(@ARGV){ $was = $_; eval $op; die $@ if $@; rename($was,$_) unless $was eq $_; } 1. opは何ですか? 2. Usageは何ですか? 3. exprは何ですか? 4. ARGVは何ですか? 5. wasは何ですか? 6. $_は何ですか? 7. eqは何ですか? 8. ファイルはどこのディレクトリに入っているものか  宣言しなくていいのですか? 9. できれば、プログラムの一行ずつ教えて頂けると助かります。 perlの初心者、というよりパソコンを使う事自体が 初心者でわからないことが多く困っています。 参考書でいろいろ調べましたが、まだ分からなくて・・・ 勉強不足で申し訳ありませんが宜しくお願い致します。

    • ベストアンサー
    • Perl
  • ファイル名を正規表現にかける際の文字コードについて

    Windows XP, ActivePerl5.8.8 です。 windows 上にあるファイルの名前に沿ってフォルダに振り分けしたく、 以下のようなコードを書きましたが、 ファイル名に日本語の「ソ」などがある場合に 処理がおかしくなります。 文字コードの問題だと思いますが、どうすれば解決できるでしょうか。 ++++ここからソース++++++ #!c:/perl/bin/perl.exe use 5.008; use strict; use warnings; use File::Basename; use File::Copy; use File::Path; my $newdir = "C:/tmp"; for my $filename ( @ARGV ){ main($filename); print "complete.\n"; } sub main{ my ($filename) = @_; my($basename, $basedir) = fileparse($filename); my($name1, $name2, $ext) = $basename =~ /^(.*) - (.*)(\.[a-zA-Z0-9]+)$/; mkdir "${newdir}/${name1}"; File::Copy::copy( "${filename}", "${newdir}/${name1}/${basename}" ) or die "${filename} : Cannot copy"; } 1;

    • ベストアンサー
    • Perl
  • 以下のperlのプログラムについて教えて下さい。

    次のプログラムは”多くのファイルの名前を一度に変更する”です。 (参考書から持ってきました) perlの初心者、というよりパソコンの初心者で参考書等で調べても わからないことが多く困っています。 #! /usr/bin/perl $op = shift or die"Usage: rename expr [files]\n"; chomp(@ARGV = <STDIN>) unless @ARGV; for (@ARGV) { $was = $_; eval $op; die $@ if $@; rename($was,$_) unless $was eq $_; } 質問 1. opは何ですか? 2. Usageは何ですか? 3. exprは何ですか? 4. ARGVは何ですか? 5. evalは何ですか? 6. wasは何ですか? 7. eqは何ですか? 8. このプログラムにおいてファイルは    どこのディレクトリでもリネーム出来るのでしょうか? 9. 出来ればプログラムの一行一行について説明をして下さい。 勉強不足で申し訳ありませんが、急ぎで知りたいので 宜しくお願い致します。

    • ベストアンサー
    • Perl
このQ&Aのポイント
  • Windows7のパソコンでマウスのペアリングができない問題についてお困りですか?接続が表示されず、マウスが使えない状態では困りますよね。そこで、アダプタの取り付けや接続方法について詳しく説明します。
  • Windows7のパソコンでマウスのペアリングができない問題に遭遇したことはありませんか?アダプタを取り付けたのに接続が表示されず、マウスが使えない状態に困ってしまいますよね。ここでは、接続ができるようにするための方法を解説します。
  • Windows7のパソコンでマウスのペアリングができない問題に悩んでいませんか?アダプタを取り付けても接続が表示されず、マウスが使用できない状況では作業に支障が出ますよね。そこで、接続の方法や注意点について詳しく説明します。
回答を見る

専門家に質問してみよう