• ベストアンサー

【コマンドライン】【ファイル数を数えて指定形式で記述】

【コマンドライン】【ファイル数を数えて指定形式で記述】 いつも参考にさせていただいております。 -質問内容- コマンドラインで連番で自動作成されたファイルを指定文字列形式で出力したい (コマンドラインに組み込みたい) -詳細- 連番で出力された画像ファイルをHTMLにて <IMG SRC='画像のURL'> などとして使用したい 出力されるファイルの数は毎回変わるので目視で数える必要があるため今回の質問をさせていただいております。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.4

そういうことであれば、全く方針を変えて、1からの連番であると言うことを前提にしてこんな感じで。 @echo off cd 任意の文字列\img echo 上部情報1行目 。。。 echo 上部情報最終行 set N=0 :LOOP set /a N+=1 if not exist file%N%.jpg goto END echo ^<IMG SRC='http://◆/img/file%N%.jpg'^> set /a X=N %% 5 if %X% NEQ 0 goto LOOP echo 中間情報1行目 。。。 echo 中間情報最終行 goto LOOP :END echo 下部情報1行目 。。。 echo 下部情報最終行

okokok12321
質問者

お礼

狙い通りの結果が得られました。 有難うございました。

その他の回答 (3)

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.3

中間情報がないのなら最初の回答に書いた (for %%F in (file*.jpg) do echo ^<img src='%%F'^>) > output.txt を変形すれば出来ますよね。 上部・中間・下部情報も入れるとすると、 @echo off cd 任意の文字列\img echo 上部情報1行目 。。。 echo 上部情報最終行 set N=0 for %%F in (*.jpg) do call :sub %%F echo 下部情報1行目 。。。 echo 下部情報最終行 goto :EOF :sub echo ^<IMG SRC='http://◆/img/%1'^> set /a N+=1 if %N% NEQ 5 goto :EOF set N=0 echo 中間情報1行目 。。。 echo 中間情報最終行 goto :EOF こんな感じで。< や > をechoするときは、^< や ^> と書いてください。

okokok12321
質問者

お礼

有難うございました。 完璧な回答な手ごたえですがやってみてご報告いたします。

okokok12321
質問者

補足

こちらでかなり近いものができました ~~~~~~~~~~~ echo 上部情報1行目 > output.txt echo 上部情報最終行 >> output.txt set N=0 for %%F in (*.jpg) do call :sub %%F echo 下部情報1行目 >> output.txt echo 下部情報最終行 >> output.txt goto :EOF :sub echo ^<IMG SRC='http://◆/img/%1'^> >> output.txt set /a N+=1 if %N% NEQ 5 goto :EOF set N=0 echo 中間情報1行目 >> output.txt echo 中間情報最終行 >> output.txt goto :EOF ~~~~~~~~~~~ 以下のように出力されます ~~~~~~~~~~~ 上部情報1行目 上部情報最終行 <IMG SRC='http://◆/img/1.jpg'> <IMG SRC='http://◆/img/10.jpg'> <IMG SRC='http://◆/img/100.jpg'> <IMG SRC='http://◆/img/101.jpg'> <IMG SRC='http://◆/img/102.jpg'> 中間情報1行目 中間情報最終行 <IMG SRC='http://◆/img/103.jpg'> <IMG SRC='http://◆/img/104.jpg'> <IMG SRC='http://◆/img/105.jpg'> <IMG SRC='http://◆/img/106.jpg'> <IMG SRC='http://◆/img/107.jpg'> -----省略 ----- <IMG SRC='http://◆/img/99.jpg'> 下部情報1行目 下部情報最終行 ~~~~~~~~~~~ これを 1-10 11-100 101-999 の順番に並べることはできるでしょうか? 以下のように出力したいです ~~~~~~~~~~~ 上部情報1行目 上部情報最終行 <IMG SRC='http://◆/img/1.jpg'> <IMG SRC='http://◆/img/2.jpg'> <IMG SRC='http://◆/img/3.jpg'> <IMG SRC='http://◆/img/4.jpg'> <IMG SRC='http://◆/img/5.jpg'> 中間情報1行目 中間情報最終行 <IMG SRC='http://◆/img/6.jpg'> <IMG SRC='http://◆/img/7.jpg'> <IMG SRC='http://◆/img/8.jpg'> <IMG SRC='http://◆/img/9.jpg'> <IMG SRC='http://◆/img/10.jpg'> -----省略 ----- <IMG SRC='http://◆/img/129.jpg'> 下部情報1行目 下部情報最終行 ~~~~~~~~~~~ 宜しくお願い致します

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.2

もう少し具体的にお願いします。 カレントディレクトリに、file0001.jpg file0002.jpg .... のようなファイルがたくさんあって、 <img src='file0001.jpg'> <img src='file0002.jpg'> のようなファイルを作りたいということですかね? Linuxならshを使って、 for f in file*.jpg do echo "<img src='$f'>" done > output.txt Windowsなら、コマンドプロンプトで (for %%F in (file*.jpg) do echo ^<img src='%%F'^>) > output.txt

okokok12321
質問者

補足

文字数制限のため詳細を作ってはいたのですが投稿できませんでしたので補足致します。 -環境- ウインドウズ -現状- コマンドラインにて以下のファイル構造にて出力される ~~~~~~~~~~~ 任意の文字列/img/1.jpg /2.jpg /3.jpg /4.jpg /5.jpg /6.jpg /7.jpg /8.jpg /9.jpg /10.jpg /11.jpg /12.jpg ~~~~~~~~~~~ 以下のテンプレートを用意してテキストエディタにて手動置き換え編集 ~~~~~~~~~~~ <IMG SRC='http://◆/img/1.jpg'> <IMG SRC='http://◆/img/2.jpg'> <IMG SRC='http://◆/img/3.jpg'> <IMG SRC='http://◆/img/4.jpg'> <IMG SRC='http://◆/img/5.jpg'> <IMG SRC='http://◆/img/6.jpg'> <IMG SRC='http://◆/img/7.jpg'> <IMG SRC='http://◆/img/8.jpg'> <IMG SRC='http://◆/img/9.jpg'> <IMG SRC='http://◆/img/10.jpg'> <IMG SRC='http://◆/img/11.jpg'> ・・・続く ~~~~~~~~~~~ ◆をUPした階層に置き換え(この部分は毎回手動でやることで問題ありません) ファイルの数に合わせてタグを減らす(この部分を自動的にしたい!) -着地目標- 画像リンク以外にも固定情報が入ったテキストファイルが出来上がれば目標達成です 例) 出力されたファイルが12個だった場合 ~~~~~~~~~~~ --上部情報-- <IMG SRC='http://◆/img/1.jpg'> <IMG SRC='http://◆/img/2.jpg'> <IMG SRC='http://◆/img/3.jpg'> <IMG SRC='http://◆/img/4.jpg'> <IMG SRC='http://◆/img/5.jpg'> --中間情報-- <IMG SRC='http://◆/img/6.jpg'> <IMG SRC='http://◆/img/7.jpg'> <IMG SRC='http://◆/img/8.jpg'> <IMG SRC='http://◆/img/9.jpg'> <IMG SRC='http://◆/img/10.jpg'> --中間情報-- <IMG SRC='http://◆/img/11.jpg'> <IMG SRC='http://◆/img/12.jpg'> --下部情報-- ~~~~~~~~~~~ こんな感じのものが出力できれば目標達成です ※--上部情報----中間情報----下部情報--は毎回同じ文字列となります ※◆に関しては後で手動で置き換えを致します ※--中間情報--に関しては任意のファイル数の後に入れたいです 例)の場合(5 10 15 20 25)の後に設定し、ファイル数が12個だった為に実際には(5 10)の後に書き込み 宜しくお願い致します。

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

どんな環境(OS,バージョン等)で使いたいのかわからないし、ファイル名とURLの対応もわからないので、正確に答えることはできませんが。 例えば、Unix系環境や、そのツール群が移植されている環境なら ls -1 *.jpg | sed 's/.*/<IMG SRC="&">/' とか Perlが使える環境なら #!/usr/bin/perl opendir DP, '.'; while( $fn = readdir(DP) ) { if ( $fn =~ /.*\.jpg/ ) { printf "<IMG SRC=\"%s\">\n", $fn ; } closedir DP ; みたいなスクリプトを使うとか。PHPとかPythonとかRubyとかでもいいけど。

関連するQ&A

  • 外部ファイルの記述の仕方

    HTMLにリンクを指定している画像にマウスが重なったときに画像を変化するようにHTML文法にJavaScriptを指定しているのですが、外部ファイル化したいのですがどのように記述すればよいでしょうか? <a href="1.html"> <img src="menu01.gif" onMouseOver="this.src=\'menu11.gif\'" onMouseOut="this.src=\'menu01.gif\'" height="30" width="138" > </a> <a href="2.html"> <img src="menu02.gif" onMouseOver="this.src=\'menu12.gif\'" onMouseOut="this.src=\'menu02.gif\'" height="30" width="138" > </a>

  • 画像の切り替えの記述形式について

    <a href="#A" onclick="document.A.src='../img/gif/B1.gif'"><img src="../img/gif/A1.gif" alt="" width="133" height="176" name="A" id="A" /></a> 画像としてA1.gifがあるのですが、A1.gifを押すと、リンク先のB1.gifが呼び出されて、変更されるというスクリプトになっています。 上のような記述をしているのですが、この場合、指定している#Aのアンカーリンクを指定しているため、画像を押す事に移動してしまいます。移動をしないようにするにはどうしたらいいですか? <a href="javascript:openURL('URL');"><img></a> このような形式で、アンカーリンクにならずに、上のような操作が可能になるという話を聞きました。 こういう場合、どのように記述したらいいですか?

  • #を含むファイルの指定

    ファイル名に#を含む画像ファイルを、imgタグで以下のように指定した場合、IE11ではXマークとなり、表示できません。 WinXP時代のIE8では正しく表示できました。 #は、ファイル名の禁則文字ではありませんが、HTMLの特殊文字になるのでしょうか? <html> <body> <p align="center"><img src="Desert#1.jpg"></p> </body> </html>

    • ベストアンサー
    • HTML
  • (javascript)HTMLで指定した画像パスに画像ファイルがない

    (javascript)HTMLで指定した画像パスに画像ファイルがない場合、別のファイル名の画像に差し替える方法が知りたいです。 以下のようにimgフォルダ内にある画像ファイル名をPHPでゲットしているのですが、その画像ファイルがない場合、確実にimgフォルダ内に存在する画像ファイルと差し替えたいのです。 print("<img src=img/". $item->getImage(). "border=0>\n"); <img src=img/cat.jpg border=0>が存在しないなら、<img src=img/dog.jpg border=0>を表示する。 javascript等、解決する方法がありますか? ご教授お願いします。 よろしくお願いします。<(_ _)>

  • コマンドラインのログファイルの作成

    Linuxで次のようなプログラムを実現したいのですが どのようにしたらよいでしょうか? (1) シェル起動後、自動的に起動し (2) シェルで入出力されるコマンドラインを指定したファイルに自動的に追加書込みされ * 書込みについては、一行毎に入出力された時刻も同時に書込むものとします 詰まり、次のような記述で、書込みたいのです 入力 時刻 出力 時刻 ・・・ 入力 時刻 出力 時刻 といった感じの書式です (3) 追加書込みされるファイルが一定容量以上になると自動的に別ファイルを生成して、そのファイルに書込まれる これは、Perlなどのスクリプト言語で作るべきでしょうか? それとも、( 例えば、コマンドやリダイレクトだけで作ると言ったような ) もっと簡単な方法がありますでしょうか?

  • ファイルをコマンドラインから生成

    symfonyのプロジェクト、アプリケーション等をコマンドラインから作るのですが、コマンドラインから作られたファイルの文字コードがS-JISになってしまい、うまく動作してくれません。symfonyに限らず何でもそうだと思うのですが、コマンドラインからファイルを作る場合、その生成されるファイルの文字コードを指定するにはどうしたらよいのでしょうか?よろしくお願いいたします。

  • sprintfで10進数を桁数指定で16進数に変換する方法

    10進数から16進数への変換自体は分かります。 $hex = sprintf("%lx",$decimal); で出来るのですが、例えば、10進数の10を16進数の0x00000Aと常に6桁にして出力するにはどうすればよいでしょう?(先頭の0xは出力しなくてもいいです。) 手元のPerl辞典には、sprintfの形式指定で出来るとなっており、指定パラメータとしてm(最小幅)というのが載っているのですが、実際の使い方の用例が無く、色々試したのですが、上手く行きません。 どなたか詳しい方、ズバッとコマンド記述の実例を一行お願いいたします。

    • ベストアンサー
    • Perl
  • コマンドラインがわかりません!!

    (質問) (1)コマンドラインというのがわかりません。 (2)下の説明のところが全部わかりません。 よろしくおねがいします!! -------------------------------------------------- (説明) ファイルを処理するとき、ファイル名指定はコマンドラインから行うのが便利です。Javaではコマンドライン引数はmain( )メソッドの引数として次のように用意されています。 public static void main (String args[ ]) { ・・・・・ } このargs引数を使うと、コマンドラインから入力されたパラメーターを次のように取得できます。 最初のパラメーター文字列は0です。 args.length args[0] args[1] args [2]  ・  ・  ・

    • ベストアンサー
    • Java
  • 「コマンドライン引数に実行ファイルを指定する」方法を教えてください。

    アプリを「常に手前に表示」にするために、Ace-Window を利用していますが、 ひとつの方法に  コマンドライン引数に実行ファイルを指定する事で、アプリを実行と同時に「常に手前に表示」にする事が出来ます。 と、明記してあります。 私には、どうすればよいのかわからないので説明をしてください。 コマンドライン引数(?)に実行ファイルを指定するとは 具体的にどうすればよいのでしょうか。

  • コマンドラインによるファイル名指定

    #include<stdio.h> #include<stdlib.h> int main(int argc,char *argv[]) { FILE *fp,*fpc; int i=0; char line[1000]; fp = fopen("test.txt","r"); if(fp == NULL) { printf("File not found.\n"); exit(1);  }  fpc = fopen(argv[1],"w"); if(fpc==NULL){ fprintf(stdout,"Can not open file.\n"); exit(1); } while(fgets(line[i],1000,fp)!=NULL){ i++; } for(i=3;i<0;i--){ fprintf(fpc,"%s",line[i]); } fclose(fp); fclose(fpc); return 0; } コマンドラインでファイル名を指定し、そのファイルに、test.txt(4行の文字列)の内容を各行を逆順に書き出すプログラムですが、上手くいきません。ご指摘を願いします。