SQLの窓

2009年08月30日


バッチファイルで、FOR に渡すパラメータの妥当性チェックを行う

@echo off

if "%1" == "" (echo コマンド番号を指定して下さい & goto end)
if "%1" == "0" (echo 番号は1以上です & goto end)

call :ErrorCheck %1 %~dp0_list.bat 2> null
if "%ERRORLEVEL%" == "1" (goto end)

for /F "delims= skip=%1" %%i in (%~dp0_list.bat) do (
	%%i
	goto end
)


REM サブルーチン用エリアを作る為の JUMP
goto end


REM ループ処理の事前エラーチェック
:ErrorCheck
call :setErrorLevel 1
for /F "skip=%1" %%i in  (%2) do (call :setErrorLevel 0)
if "%ERRORLEVEL%" == "1" (echo パラメータが不正です)
exit /B

REM errorlevel 設定用
:setErrorLevel
exit /B %1


REM 終了
:end

ERRORLEVEL を判断用に使う為に( 汎用性のため )
setErrorLevel というサブルーチンを作成しています。

FOR のパラメータに不正があると、do を実行しないので、
ERRORLEVEL が設定されたかどうかでエラーを判断します。

FOR が出力する標準エラー出力は直接取得できないので、
サブルーチン化して FOR の出力するエラーメッセージを抑制しています

関連する記事
バッチファイルで、ファイルの中の行を指定してその行の文字列を実行する


posted by lightbox at 2009-08-30 21:31 | コマンド : バッチファイル | このブログの読者になる | 更新情報をチェックする

バッチファイルで、ファイルの中の行を指定してその行の文字列を実行する

listexec.bat
@echo off

if "%1" == "" (echo コマンド番号を指定して下さい & goto end)
if "%1" == "0" (echo 番号は1以上です & goto end)

for /F "delims= skip=%1" %%i in (%~dp0_list.bat) do (
	%%i
	goto end
)

echo リストの最大値を超えています

:end

_list.bat
@echo off
dir "C:\user"
dir "C:\Documents and Settings\lightbox\My Documents\My Pictures"
dir "C:\Documents and Settings\lightbox\Local Settings\Temp"
dir "C:\Documents and Settings\lightbox\SendTo"
dir "C:\Documents and Settings\lightbox\Favorites"

listexec.batと_list.bat を同じディレクトリに置いて実行します

例 : listexec 1
例 : listexec 5

listexec や listexec 6 はエラーになります

_list.bat を一連の JOB として考えると、for の中の goto end を削除する事によって、
どこか途中からやりなおす、というような使い方が可能です
( その場合、for から出た後のメッセージを変更する必要があります )


posted by lightbox at 2009-08-30 20:27 | コマンド : バッチファイル | このブログの読者になる | 更新情報をチェックする

Lightbox.js の使用方法と、範囲指定を可能にするアドオン関数と、ボタンで呼び出せるようにするアドオン関数

設置方法
ダウンロードした中の、lightbox.css と lightbox.js を変更する必要があります

これは、ダウンロードページの 「How to Use」で述べられていますが、
同梱の画像への参照を正しくする為です。同梱されたままですと、
相対的な位置が正しく無いと表示されません。常に正しくするには http から始まる
URL で指定する必要があります

lightbox.css
prevlabel.gif
nextlabel.gif
Lightbox_css

lightbox.js
loading.gif
closelabel.gif
Lightbox_js

ですから、ページのヘッダに書くタグも以下のように書く必要があります
( 見やすいように改行をいれていますが、重要なのは URL です )
<link
	rel="stylesheet"
	href="http://lightbox.on.coocan.jp/js/lightbox204/css/lightbox.css"
	type="text/css"
	media="screen"
/>

<script
	src="http://lightbox.on.coocan.jp/js/lightbox204/js/prototype.js"
	type="text/javascript"
></script>
<script
	src="http://lightbox.on.coocan.jp/js/lightbox204/js/scriptaculous.js?load=effects,builder"
	type="text/javascript"
></script>
<script
	src="http://lightbox.on.coocan.jp/js/lightbox204/js/lightbox.js"
	type="text/javascript"
></script>

上記 URL を使ってもらってもかまいません。


以下、実際に説明されている注意書きです。

■ この順序で記述して下さい
■ ページがロードされた後でないと動作しません
■ もし、onload イベントがあってそのせいで動かないと思われる場合は、
  そのイベントの最後でinitLightbox()を実行して下さい

最後に関して、BODY の onload ならば以下のようにして下さいとあります
<body onload="MM_preloadImages(‘/images/menu_on.gif’)…;initLightbox()">

実装方法
これは簡単です。A タグの属性に rel="lightbox[ギャラリー名]" を追加
するだけですが、今回追加仕様的なアドオンを作成しました。
オリジナルのままですと、A タグの一つ一つに指定する必要があるのですが、
範囲指定をできるようにしました。
( ギャラリー名は半角英数にして下さい )

以下の関数を lightbox.js の最後に追加して下さい
( lightbox.on.coocan.jp には実装済みです )
Lightbox.setGallery = function (s){
($A($(s).
getElementsByTagName('a'))).
each(function(Element){Element.setAttribute("rel","lightbox["+s+"]")}); 
}

その後以下のように a タグで並べた画像のリンクを挟んで下さい
<span id=gallery1>
<a href="http://lightbox.cocolog-nifty.com/photos/drawroom2/1248268708270468.png">
<img src="http://lightbox.cocolog-nifty.com/photos/drawroom2/1248268708270468-thumb.png" />
</a>
<a href="http://lightbox.cocolog-nifty.com/photos/drawroom2/1248097047143143.png">
<img src="http://lightbox.cocolog-nifty.com/photos/drawroom2/1248097047143143-thumb.png" />
</a>
<a href="http://lightbox.cocolog-nifty.com/photos/drawroom2/1248012765169597.png">
<img src="http://lightbox.cocolog-nifty.com/photos/drawroom2/1248012765169597-thumb.png" />
</a>
</span>
<script type="text/javascript">Lightbox.setGallery("gallery1")</script>

1230754903685297 12253419214967 1247498424496751_2 1247280326163373
あともう一つ、lightbox.cocolog-nifty に置いている lightbox.js には、ボタンで呼び出す
関数も追加してあります。
例えば、a タグ(要素)に id=img1 を追加して、onClick に、Lightbox.callNativeMouseEvent("img1")
と書くだけです。ボタンだけにしたい場合は、span を非表示にすれば良いでしょう




タグ:prototype.js
posted by lightbox at 2009-08-30 15:36 | 記録 | このブログの読者になる | 更新情報をチェックする

2009年08月29日


コマンドプロンプトから DVD にデータを書き込む 【CreateCD】

フォルダを .iso に変換後CDに書き込むか仮想ドライブとしてマウントする 
という記事を書きましたが、その作者さんが作成されたコマンドプロンプト用の
アプリケーションです。

標準でも、CD への書き込みが可能なのですが、Microsoft の更新プログラム
をインストールすると、DVD にも書き込めるようになります。
これは、Framework から使える API と思われますので何れ詳細は調べる
つもりですが、とりあえずは使う側から。

XP用の更新プログラムはこちら。

もちろん Vista がメインのようです。元々のダウンロードリンクは、
Microsoft のサポートオンラインにあります

この更新ブログラムをインストールする前に実行してみましたが、
見事にエラーになります。プログラム側では、その更新プログラムに
よってインストールされる API があるという前提で作成されているので
すぐ解ります。

ダウンロードして解凍すると、3つのファイルが入っており、全て同じ
ディレクトリに置いて使って下さい。コマンドプロンプト用ですから、
PATH 環境変数に登録されたディレクトリが都合いいです。

>CreateCD3 -r:d -eject Z:\walker\mdata\flv\a*.*
Command-line CD Recording utility for Windows Vista
Version 3.1.3166.19403
Copyright 2006 (C) Alex Feinman


Adding files.
Writing disc.

INITIALIZING HARDWARE
0% done
CALIBRATING POWER
0% done
WRITING DATA
100% done
FINALIZATION
100% done
CreateCD のページはこちらです。

使用方法は、10/09/2007: Build 3.01 というのが DVD バージョンで、
これには、readme が入って無いので、ダウンロードページの Usage か、
CD バージョンの readme を基本仕様として納得して、引数なしで実行
するとパラメータの説明が表示されます

Createcd3

※ readme には、-s という媒体用の スピードオプションが説明されています
( 省略すると、媒体の最高スピードを使うそうです / DVD で使えるかは未確認です )


タグ:DVD
posted by lightbox at 2009-08-29 21:15 | フリーソフト | このブログの読者になる | 更新情報をチェックする

2009年08月28日


バッチファイルで使用できる特殊な3つの環境変数



Windows の ヘルプとサポートセンターで コマンドシェル で検索すると、
コマンドシェルの概要 というのがリストの中に出てきますので、そちらに詳細があります。

1) %CD%
2) %ERRORLEVEL%
3) %RANDOM%

当然バッチファイル内でのプログラミング目的です。
環境変数は、コマンド内で置き換えられてそのまま実行されるので
以下のような使い方ができるので便利です

title ユーザーコマンドプロンプト / %cd%

これは、コマンドプロンプトのタイトルに現在のディレクトリを表示する
cur.bat(laylaClass バッチ処理支援パッケージ) の中身です。

例えばユーザ変数に現在のカレントディレクトリへ戻るコマンドをセットします
set CMD_WORK=cd %CD%

その後、cd コマンドであちこち移動しても、
%CMD_WORK% と実行すれば、元に返ってこれます


posted by lightbox at 2009-08-28 17:56 | コマンド : バッチファイル | このブログの読者になる | 更新情報をチェックする

SQL Server 2000 以前で可能だった *= を使った外部結合がエラーになる場合の対処

MSDN オンライン : sp_dbcmptlevel

LEFT OUTER JOIN に書き直せとの事ですが
sp_dbcmptlevel で無事動作しました
( 将来この機能も使えなくなる予定らしい )

sa で実行
sp_dbcmptlevel データベース名, 80




タグ:トラブル
posted by lightbox at 2009-08-28 16:59 | SQLExpress | このブログの読者になる | 更新情報をチェックする

2009年08月27日


laylaClass バッチ処理支援パッケージのアンインストール

本日、removeenv_path.vbs を追加しましたので、これを実行すると
環境変数の PATH からインストールディレクトリを削除します。

その後、bin ディレクトリごと削除して下さい。



posted by lightbox at 2009-08-27 18:14 | フリーソフト | このブログの読者になる | 更新情報をチェックする

laylaClass バッチ処理支援パッケージにおける書庫解凍の手法

httpget というコマンドを用意していますので、サーバー側に
軽量な解凍ソフトを保存しておいて、ダウンロードして使います。
( laylaClass では Lhasa.exe を使用していますが、変更可能です )

↓melt.bat
@echo off
for /F "tokens=1" %%i in ('echo %1') do (
	if "%%i"=="ECHO" (
		goto error
	)
)
if exist %~dp0Lhasa.exe ( echo off ) else ( cscript %~dp0httpget.vbs http://homepage2.nifty.com/lightbox/Lhasa.exe %~dp0Lhasa.exe )
%~dp0Lhasa.exe -d- -a -q -f -e- "%~f1"

goto end

:error
echo 解凍する対象ファイルのパスを指定して下さい

:end

最初の for で引数の存在チェックを行っています
if "%~p1" == "" ( goto error ) でいいのですが、このほうが汎用性あるかもしれません
ファイルが存在した時の echo off はダミーです。NOT 使うと混乱するので。


posted by lightbox at 2009-08-27 18:00 | フリーソフト | このブログの読者になる | 更新情報をチェックする

2009年08月24日


ISO Writer : Windows コマンドライン CD/DVD 書き込みツール

2014/11/24 時点の最新情報を見に行くと、ISO Writer という別のアプリが 2012/10/17(bug fixes) でビルドされて配布されていました。コマンドプロンプトで動作するアプリで、パラメータはリンク先のページに記述されています( 英文 )

※ 以前の記事では、『ISO Recorder v2』について書かれていました
※ https://www.virustotal.com/ でチェックしましたが問題は出ていません。

Supported platforms
Windows Vista (original, SP1, SP2), 32 and 64-bit
Windows 7, 32 and 64-bit
Windows Server 2008 and 2008 R2, 32 and 64-bit
Windows XP SP2+, Windows Server 2003 SP1+. Requires Windows Feature Pack for Storage
Usage
The following is a command line format for ISOWriter utility:

            ISOWriter [-r ] [-s ] [-e] [-v] [-b] 
             -r  ( -r e: )
             -s  ( -s 52 )
             -e (eject after writing)
             -v (validate after writing)
             -x (erase)
             -b (bare mode, no fancy output, suitable for batch files)
             -i (info)
		
Example: ISOWrite -r e: -e C:\Data\image.iso

Use recordable drive E:, eject after completion. Burns c:\data\image.iso

-e[ject] Ejects disc after operation has been successfully completed.

-s[peed] Specify burn speed. This is in "X", i.e. for a 52x capable drive you can specify 20. For a DVD the range is different.ISOWrite will adjust speed not to exceed maximum supported by drive/media. If not specified, the fastest speed that media supports is used

-b[are] Limit output. Specifically, disabled progress information. Useful for batch files with redirected output.

-r[ecorder] : Use recorder . If not specified, the first available recorder is used - typically it is the same one as used by Windows

-i[nfo] Print extensive information about drive/media
-v[alidate] Validate recorder media after writing.
-x Force erase before burning. Normally, erase is performed only when it is required

-info Print recorder/disk information and exit. Prints recorder model, media type, amount of space available. This option should not be combined with others. The rest of options will be ignored
ISO Recorder に関する 2009-08-24 の古い記事 Createiso ISO Recorder v2(現在 v3.1) for Windows Vista/Windows 7 というソフトがあります。世間では、.iso を簡単に CD に焼いてくれるソフトとして知られていると思いますが、エクスプローラからフォルダを .iso ファイルとして作成してくれます。 このソフト、Microsoft の MSDN からリンクされており、というか紹介されています。 ISO ファイルを空の CD-R/DVD に書き込むというセクションに書かれていますが、そのセクションには、Virtual CD-ROM Control Panel for Windows XP というツールリンクや Nero Burning ROM というツールへのリンクもあります。Virtual CD-ROM Control Panel for Windows XP はサポート対象外のツールですが、.iso を仮想ドライブにマウントしてくれるので、CD に焼かなくてもファイルを使用できます。主に、Microsoft のサイトからダウンロードしたソフトをインストールするのに使えます。実際 MSDN ライブラリを無事にインストールできています。 ただ、めったに使うものでも無いので使用後はドライバレベルで削除処理をしておいたほうがいいと思います。後、readme.txt にもありますが、VCdRom.sys は、system32 ディレクトリにコピーして使って下さい。解凍場所で使うと不具合が発生します。 Vcdrom ISO Recorder v2 の使い方は、オリジナルサイトにチュートリアルがあります。前半の殆どは CD への ライティング方法ですが、一番最後に .iso の書き込み例があります。 ※ ダウンロードファイルが XP のバージョンや Vista によって違うので注意して下さい。 ( 現在 Windows7 用もあるようです )
posted by lightbox at 2009-08-24 01:26 | フリーソフト | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します


Windows
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
PHP正規表現チェッカー
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり