プライベートや仕事で気づいたことやノウハウなどを書き留めるブログです

2017/03/04

HTMLで複数画像のimgを連続で打つとき:PowerShellで連番作成

0 件のコメント
いまだに手打ちでHTMLやってます。
ほかの方法を知らないし、でっかいページを作るわけでもないので。
基本はBootstrapのHonokaをフレームワークで使う感じで。
エディターのBracketsで補完機能を使ってます。
ほかの便利機能はあまり分からない・・・。

Bootstrapの日本語がキレイに表示されるHonoka

BracketsはQiitaのassialiholicさんのが分かりやすいです。
Bracketsの機能紹介、使い方解説

簡単な画像編集はPaint.Netでいけるはず。


画像ギャラリーみたいに30枚くらいのimgタグを貼るとき、
PHPならforで繰り返すだけだけど、手打ちのHTMLだと面倒。
前はエクセルマクロとかでやってた。
ふと思ってPowershell使ってみたらすごく便利だった。

■ステップ1:コードを1個作る

下記のような感じをphoto001-photo030.jpgで、繰り返し。
<div class="col-xs-4">
<div class="photo">
<a href="img/photo001.jpg">
<img src="img/photo001.jpg"  class="img-responsive" />
</a>
</div>
</div>

■ステップ2:PowerShellで連番にするとこをforで回すコードを作成

-----
$cr = "`n"
$tab = "`t"
$a = "<div class=`"col-xs-4`">" + $cr
$b = "<div class=`"photo`">" + $cr
$c1 = "<a href=`"img/photo"
$c2 = ".jpg`">" + $cr
$d1 = $tab + "<img src=`"img/photo"
$d2 =  ".jpg`" class=`"img-responsive`" />"+ $cr
$e = "</a>"+ $cr
$f = "</div>"+ $cr
$g = "</div>"+ $cr + $cr

for ($i=1;$i -lt 30; $i++){
$res = $res + $a + $b + $c1 + $i.ToString("000") + $c2 + $d1 + $i.ToString("000") + $d2 + $e +$f + $g
}

$res > output.txt
-----

■ステップ3:実行する
上記のコードをテキストに書いて、「imgtag.ps1」のように拡張子ps1で保存。
右クリックで「PowerShellで実行」する。
同フォルダ内にoutput.txtが作成される


今回のは、フォルダ内の拡張子.jpgのファイル名を全部取得して、
ファイル名を配列に入れて、配列を回して出力する、というのがやりやすいと思う。
そうすれば、ファイル名の連番もつけなくていいし。

マクロのためだけに使っていたExcelが要らないかも。
これからもPowerShellを使ってみよう。
ライブラリを読み込めば.Netも使える。
かなり便利そうだ。
-----
Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.MessageBox]::Show("TEXT " ,  "TEST" )
-----


0 件のコメント :

コメントを投稿