- ベストアンサー
【コマンドライン】【ファイル数を数えて指定形式で記述】
【コマンドライン】【ファイル数を数えて指定形式で記述】 いつも参考にさせていただいております。 -質問内容- コマンドラインで連番で自動作成されたファイルを指定文字列形式で出力したい (コマンドラインに組み込みたい) -詳細- 連番で出力された画像ファイルをHTMLにて <IMG SRC='画像のURL'> などとして使用したい 出力されるファイルの数は毎回変わるので目視で数える必要があるため今回の質問をさせていただいております。
- みんなの回答 (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 下部情報最終行
その他の回答 (3)
- notnot
- ベストアンサー率47% (4901/10362)
中間情報がないのなら最初の回答に書いた (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するときは、^< や ^> と書いてください。
お礼
有難うございました。 完璧な回答な手ごたえですがやってみてご報告いたします。
補足
こちらでかなり近いものができました ~~~~~~~~~~~ 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% (4901/10362)
もう少し具体的にお願いします。 カレントディレクトリに、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
補足
文字数制限のため詳細を作ってはいたのですが投稿できませんでしたので補足致します。 -環境- ウインドウズ -現状- コマンドラインにて以下のファイル構造にて出力される ~~~~~~~~~~~ 任意の文字列/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)
どんな環境(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とかでもいいけど。
お礼
狙い通りの結果が得られました。 有難うございました。