• ベストアンサー

ファイル名の抜き出しについて

ttyp03の回答

  • ttyp03
  • ベストアンサー率28% (277/960)
回答No.2

#1です。 もうひとつこんなのを。 $inLink =~ /(^.*\\)(.*)/; print "$2\n"; こっちのほうが抜き出してる感じですかね。

関連するQ&A

  • PDFファイルアップロード時にOSファイル名の取得のほか任意のファイル名を記録する方法について教えてください。

    先ほどの質問させていただきましたが、もう少し細かいパートで教えてください。 PDFファイルアップロードプログラムでアップロードする際に OS上のファイル名(例:テスト.pdf)の取得その他任意に見出しをつける(例:決算報告)をサーバー上のファイル(管理ファイル)に記録したいのですが、 どのように記述したらよいのでしょうか? またこの管理ファイルを読み込んで、見出しを変更、アップロードファイル削除を行いたいのですが、こちらも記述方法が分かりません。 最後にこの管理ファイルを読み込んで、ダイナミックにページにリンクを張りたいのですが、これも記述方法が分かりません。 プログラムのほか、ロジック(実現方法)だけでもご教示いただければ助かります。どなたかご回答の程お願いいたします。言語はperlです。

    • ベストアンサー
    • Perl
  • ファイル名の切捨てとリンクの張り方

    いつもお世話になります。 ファイルアップロードファイルを下記のように作成しました。 その後の処理でファイル名を記録しようと思ったのですが、 下記のように記述するとファイル名がフルパスになってしまいます。 (ファイル名:.$inLINK.) ファイル名をカットする方法(例:c:\temp\test.txt->test.txt)にするにはどうしたらよいのでしょうか? ファイル拡張子はtxtだけではなく、doc、xls、pdfなど多岐にわたります。 どなたかご教示お願いいたします。 ※できればこの記録したファイルを読込んでリンク表示する方法も教えて下さい。 -----------ファイル記録処理------------------------------------ print DATA $lTMPTabl[0]."<>".$inTITLE."<>".$inMAIN."<>".$inDATE."<>".$inSEL."<>".$inLINK."<>".$inFLAG."<>".$inCATE."\n"; -------------------------------------------------------- ---------ファイルアップロード-------------------------------- $BUFSZ = 2048; $file = ''; $buffer = ''; if ($inLINK ne '') { while ($bytesread = read($inLINK, $buffer, $BUFSZ)) { $file .= $buffer; } open(OUT, "> ../upload/$inLINK"); binmode(OUT); print(OUT $file); close(OUT); } ------------------------------------------------------------

    • ベストアンサー
    • CGI
  • バッチファイル 現在のフォルダ名をファイル名に置き換える

    こんにちは。超初心者なのですが教えてください。 ある複数フォルダに格納されている.txtファイルを、現在の フォルダ名を取得して、別フォルダにリネームして 格納するバッチファイルを作成したいと考えています。 for文を繰り返し使わなければいけないことはわかっているのですが、それをどう表現していいのか全然わかりません。 例えば、 データ取得元として以下のファイルがあったら C:\temp\20100101\data1.txt C:\temp\20100101\data2.txt C:\temp\20100101\data3.txt C:\temp\20100102\data1.txt C:\temp\20100102\data2.txt C:\temp\20100103\data1.txt C:\temp\20100103\data2.txt これを別フォルダに、現在のフォルダ名をファイル名にくっつけて 以下のように一つのフォルダに纏めて格納したいと思っています。 ファイルの中身はそのままコピーしたいので、どこかでcopyコマンド を使うかもしれないです。 C:\test\data1_20100101.txt C:\test\data2_20100101.txt C:\test\data3_20100101.txt C:\test\data1_20100102.txt C:\test\data2_20100102.txt C:\test\data1_20100103.txt C:\test\data2_20100103.txt 実装方法として以下までは考えましたが、これ以上は無理そうです。 rem set A=C:\temp rem set B=C:\test for %%A in (C:\temp\) do ( if not "%%A"=="" ( pushd "%%A" for /d %%B in (*) do ( if not "%%B"=="" ( pushd "%%B" for /d %%C in (*) do ( if not "%%C"=="" ( pushd "%%C" ) ) ) ) popd? ) ) 申し訳ありませんが、お助け願います。

  • ファイル名の取得の方法

    こんにちは アップロードはうまく行ったのですが、ファイル名をうまく取り出すことが出来ません print"$filename \n"; で変数の中身を見るとCODE(0x189015c)というようなものが出てきました。 この変数をファイル名にしなくてはならないのですがどうやってもうまくいきません。 お願いします。 use CGI_Lite; require 'util.pl'; $Title = 'ファイルのアップロード サンプル'; $Temp = './tmp'; $Platform = 'Unix'; $BUFSZ = 2048; $CharSet = 'Shift_JIS'; $upload = new CGI_Lite; $upload->set_directory($Temp) or exitError("ディレクトリ $Temp がオープンできません。"); $upload->set_platform($Platform); $upload->set_buffer_size ($BUFSZ); # ファイル名の変換 $filename = $upload->filter_filename(\&convName); $upload->close_all_files; # フォームデータの解析 %data = $upload->parse_form_data; if ($upload->is_error()) { # アップロードのエラー exitError($upload->get_error_message()); } print <<"EOL"; <HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> $filename </BODY> </HTML> EOL exit(0); sub convName { local($name) = shift; $name =~ tr/A-Z/a-z/; # 大文字から小文字へ変換 $name =~ s/(?:%20)+/_/g; # 空白文字を_に変換 $name =~ s/%[\da-fA-F]{2}//g; # %xx を削除 return ($name); } __END__

    • ベストアンサー
    • CGI
  • PDF管理ファイルを部門ごと分ける方法

    いつもお世話になります。 perlでPDFをアップロードするファイルを作成しております。作成したプログラムはファイルをアップロードした時に管理ファイルを作成しアップロードしたファイル名と任意に作成したファイルを記憶するものです。出力プログラムは別にありその記録ファイルを読み込んでHTMLに吐き出しを行います。仕様変更で各部門ごとに記録ファイルを作成する櫃用があるのですが方法がわかりません。何かよいアイディア、ツールのご紹介をお願いいたします。

  • 条件にあった特定のファイルのフォルダ名を得る

    よろしくお願いします。 階層的に存在するファイル(すべて同名)で、条件にあった記述がされているファイルのフォルダ名を得たいのですが、どのような方法が考えられるでしょうか? 漠然とした質問で申し訳ありません。 例えば、 TEST--+--A--TEST.txt      |      +--B--TEST.txt      |      +--C--TEST.txt というフォルダ階層でフォルダ"/TEST/A~/TEST/C"があり、それぞれ"TEST.txt"というファイルを持っているとします。 その中の"/TEST/B/TEST.txt"だけ"dummy"という記述が1行あったとするとき、フォルダ名"/TEST/B"を抽出したいのですが何か良い方法はあるでしょうか? (実際の各フォルダ名は規則性なくかなりの量があります) サーバー・・・HP-UX CGI開発言語・・・Perl5 開発端末・・・windows2000(Tera Term 使用) 以上、よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • ブラウザ上でファイルをアップロードさせるCGIでファイル名を指定

    http://www.tohoho-web.com/cgi/wwwupl2.txt ↑このCGIを利用して、ファイルのアップロードが出来るようになったのですが、アップロードされたファイル名をこちらで指定したファイル名に変更させることは出来ますか? 例えば10個のファイルをアップロードした場合、001.jpg、002.jpg、.....010.jpgというように。 アップロードされたファイルをフラッシュで読み込みたいというのが目的です。

    • 締切済み
    • CGI
  • Perlで異なるフォルダからファイルをコピーし、ファイル名を変更する方法を教えてください

    前回類似するお願いをしたのですが、 もう一度ご質問させてください。 <やりたいこと> c:\scriptフォルダにある「copyAndRename.cgi」を  起動し、ファイルコピーとRenameをする処理を  行ないたい。 <ファイルコピーの内容> C:\test1フォルダにあるファイル名「test.test.csv」 を、c:\test2フォルダにコピーする <ファイルRenameの内容> C:\test2フォルダにコピーした、ファイル 名「test.test.csv」の「.」をなくし「-」を置き換え、「test-test-csv」とファイル名に変更する処理をしたい。 <できていること> (1)の処理は行なえているので問題ありません。 (2)の処理に関しては、以前の質問させていただいた  回答から、下記のようなスクリプトを書き、実行した  が、Renameされませんでした。 ----- $A="test.test.csv"; $B=$A; $B=~s/\./-/; # ドットを全置換により[-]に変更。 rename $A,$B; ----- 実行している、「copyAndRename.cgi」が格納されている c:\svriptフォルダに、「test.test.csv」をおいて テストをしてみると正常に起動します。 renameを行なう際のパスの切り方がわかれば 解決できると思うのですが、わかりません。 初心者の質問で恐縮ですが、どなたかお教えください。

    • ベストアンサー
    • CGI
  • ファイル内容抜き出しに付いて教えてください。

    お世話になっております。 solarisでシェルを作成したいのですが。 ある文だけを抜き出したいと思っています。 例: ファイル名:test.txt 1############## 2# test test # 3############## 4aaaaaaabbbbbbb ←このファイル内の4行目と5行目だけを他のファイルにコピーしたい 5cccccccddddddd 4行目と5行目だけを他のファイルにコピーしたいのですが可能でしょうか? ご教授願います。

  • curlでFTP転送時、日本語ファイル名が文字化け

    linux上でcurlコマンドを使用し日本語ファイル名をFTP転送した場合、 文字化けしてしまいます。何か解決策はありますでしょうか。 下記の記事(Windows環境の場合)ではcurlでは日本語ファイル名が転送できない旨の記述がありました。 解決策としてA案、B 案の記述がありますが意味がよくわからないです。A案はテンポラリフォルダにファイルをコピーしてそれをアップロードするようなことが書いてありますがなぜそれで解決するのでしょうか。日本語ファイル名のファイルをテンポラリフォルダにコピーしてそれをアップロードしても結果は同じで文字化けすると思います。 また、B案は日本語ファイル名「日本語.csv」があった場合、シンボリックリンク(ショートカット)を「test.csv」の名前で作成。「test.csv」をアップロードするということでしょうか?ショートカットがアップロードされるだけのような気がするのですが違いますでしょうか。 https://golorih.exblog.jp/26695040/