バッチファイルをさくせいしてて、ECHO コマンドで改行を出力する方法を調べてたら見つけた。
DR DOS 7.03 COMMAND LIST
作成中らしいけど、アルファベットごとになってて、なかなか見やすいです。
Win32API の CreateDirectory 関数は親ディレクトリが存在していないと失敗するが、存在しなければ親ディレクトリも作ってくれる MakeSureDirectoryPathExists 関数というのがあるらしい。
Pathで指定されたディレクトリを新規に作成する。
Pathで指定したパスの末尾が\で終わっていない場合、Pathはファイル名とみなされ、そのファイルの為のディレクトリが作成される。例えば、Pathに"c:\aaa\bbb\ccc"と指定した場合、作成されるディレクトリは"c:\aaa\bbb"である。
Pathは、既存のディレクトリを指していても良い。その場合何もせずに正常終了する。
Pathが絶対パス指定の場合、ドライブ名(またはマシン名と共有名)を含んでいなければならない。
詳しい情報はあとで調査します。今時間ないの。記録のみ。
連番フォルダ作成バッチの姉妹品。WSHさえ入っていれば動くので、拡張機能を使いまくったBATファイルより汎用的なのかも。
このあいだ、使おうと思ったときに思い出せなかったので。
Oracle で、SQL を書く時に、各行について、「ある列が5以上かどうか」を真偽値でとりたい場合がある。こういうのは、DECODE 関数と LEAST 関数、GREATEST 関数なんかを駆使すると可能。たとえば、EMP表のSALが1000未満の人数、1000以上3000未満の人数、3000以上5000未満の人数、5000の人数を求めたいような場合を考えてみる。(もちろん、WHERE句で条件を指定して、COUNTした結果をUNIONすればいいのだけれど。)
SELECT SUM( DECODE( LEAST( SAL, 1000 ), 1000, 0, 1 ) ) AS "1000未満", SUM( DECODE( LEAST( SAL, 1000 ), 1000, DECODE( LEAST( SAL, 3000 ), 3000, 0, 1 ) ) ) AS "1000以上3000未満", SUM( DECODE( LEAST( SAL, 3000 ), 3000, DECODE( LEAST( SAL, 5000 ), 5000, 0, 1 ) ) ) AS "3000以上5000未満", SUM( DECODE( LEAST( SAL, 5000 ), 5000, 1, 0) ) AS "5000以上" FROM EMP /