前提:
current directory---perl scriptが存在する
data directory -----.\DATA¥
current directory直下のフォルダ"DATA"に含まれるファイル名(text file)の取得は、
------------------------------
opendir(DIR,"./DATA/");
@file=readdir(DIR);
closedir(DIR);
foreach $myfilename(@file){
if($myfilename=~/txt|TXT/){
print "$myfilename\n"; #確認用
}
}
で、できますが、フルパス付は、どのようにすればできるでしょうか?
現状、DOS promptで下記のようにやっています。
dir /s/b/o .\DATA\*.txt > filelist.dat
これを、perlで読み込んで、処理をやっています。
readdirをうまく使って、perlの中で済ませてしまいたいのです。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
use Cwd;
私は、標準でインストールされているモジュールを利用しています。
cwd.pm で検索すると、ファイルが見付かりますので、それをスクリプトと同じフォルダに入れれば利用可能かな?(通常はlibフォルダに入れますが、設定されて無いようなので・・・)
試したことは無いので、ちょっと自信ないです。
--------------------------------
require 'getcwd.pl';
こちらの場合は、上記と同様 getcwd.pl で検索すれば、ファイルが見付かるので、それをスクリプトと同じフォルダに入れます。
こちらはこの方法で問題ないと思います。
--------------------------------
$myCurrentDir1=`cd`;
chomp($myCurrentDir1);
この方法もご存知ですよね(前後の質問より)。
これでも良いと思います。
Unix系なら
$myCurrentDir1=`pwd`;
Venzouさん、ありがとうございます。
仕事においては、
$myCurrentDir1=`cd`;
chomp($myCurrentDir1);
この方法にて、進めております。
ディレクトリの操作を理解できたことは、良かったです。
ありがとうございます。
No.1
- 回答日時:
use Cwd;
$wd = Cwd::getcwd();
又は
require 'getcwd.pl';
$wd = &getcwd();
で、カレントディレクトリを調べて
$fullpath = "$wd/DATA/$myfilename";
で、どうでしょう?
この回答への補足
venzouさん、ありがとうございます。
小生、PCの設定がうまく行っていないため、perlは、最低限の条件で動かしています。フォルダ"text"にPerl.exe、Perl300.dllのみ入れてあります。
案の定、下記のスクリプトは、はねられました。
-------myfullpath.pl-------------------------
use Cwd;
$wd = Cwd::getcwd();
$fullpath = "$wd/DATA/$myfilename";
print "$fullpath\n";
---------------------------------------------
C:\text>perl myfullpath.pl
Can't locate Cwd.pm in @INC at myfullpath.pl line 1.
BEGIN failed--compilation aborted at myfullpath.pl line 1.
use Cwdをうまく動かすためには、どのファイルを持ってくればよいでしょうか?
大変、申し訳ないですが、よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- その他(プログラミング・Web制作) Pythonを勉強しています。 5 2023/08/25 09:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
無料配布の郵便番号自動入力cgi...
-
perl上からfindを使い検索した...
-
エラーログ「\\x8ew\\x92\\xe8...
-
VBAでCSVファイルを途中行まで...
-
openした後、closeしないでプロ...
-
ファイル出力をUTF8Nではなくて...
-
C言語でのファイルのデータ更...
-
Perlで空白行を削除
-
batファイルでrenameができませ...
-
バッチファイルの作り方(CSV→...
-
perlにて2つのファイル比較
-
ファイルからある文字列の個数...
-
fgets で値が取得できない
-
Perlで フォルダ内の全て...
-
エクセルVBA コードが同じでも...
-
awkスクリプトでダブルクォーテ...
-
Perl 特定のフォルダ以外削除
-
Perl エラーログを指定の場所...
-
文字列をカウントする方法
-
Perlの変数に文字数制限(容量...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
perlからのexcel読み込み
-
無料配布の郵便番号自動入力cgi...
-
readdir におけるフルパスでの...
-
エラーログ「\\x8ew\\x92\\xe8...
-
Perlファイルテスト演算子が正...
-
perl system関数 引数 フォルダ
-
perl上からfindを使い検索した...
-
コマンドプロンプトからperlを...
-
unlink 、renameが使えない理由
-
バッチファイルの作り方(CSV→...
-
awkスクリプトでダブルクォーテ...
-
VBAでCSVファイルの特定行を書...
-
DOSコマンドで、標準出力を出力...
-
ExcelをCSV書き出す場合のシー...
-
openした後、closeしないでプロ...
-
close()で例外が投げられる理由
-
batファイルでrenameができませ...
-
VBAでCSVファイルを途中行まで...
-
window.open でのファイル指定方法
-
VBAで巨大なファイルの途中から...
おすすめ情報