プロが教えるわが家の防犯対策術!

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

いつも参考にさせていただいております。

-質問内容-
コマンドラインで連番で自動作成されたファイルを指定文字列形式で出力したい
(コマンドラインに組み込みたい)

-詳細-
連番で出力された画像ファイルをHTMLにて
<IMG SRC='画像のURL'>
などとして使用したい

出力されるファイルの数は毎回変わるので目視で数える必要があるため今回の質問をさせていただいております。

A 回答 (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 下部情報最終行
    • good
    • 0
この回答へのお礼

狙い通りの結果が得られました。

有難うございました。

お礼日時:2010/10/31 19:07

中間情報がないのなら最初の回答に書いた



(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行目
下部情報最終行
~~~~~~~~~~~

宜しくお願い致します

補足日時:2010/10/27 01:52
    • good
    • 0
この回答へのお礼

有難うございました。

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

お礼日時:2010/10/26 23:34

もう少し具体的にお願いします。



カレントディレクトリに、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)の後に書き込み

宜しくお願い致します。

補足日時:2010/10/26 22:34
    • good
    • 0

どんな環境(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とかでもいいけど。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!