2018年 03月 07日
先の ワンライナー番外地 の投稿でキャレット使いまくりが恥ずかしいと書いた。
ふと文字列扱いのネタを思い出して引っ張り出してみた。 こちらは1月にXP上で変数の挙動テストした時のスクリーンショット。 ![]() そういえば、cmd/exe へのパラメータ渡しは、引用符であればキャレット外せるのだと気付いた。 cmd/? でヘルプを読むと、次の部分の2番目に該当させればよさげである。 /C または /K が指定されている場合、スイッチの後の残りのコマンド ラインがそうして、以下のように修正した。(パス数も99を上限に) cmd/q/v:on/k "prompt $g &for /L %i in (101,1,199) do set i=%i&for /F "delims=;" %p in ("!PATH!") do set $path!i:~1!=%p&set path=!PATH:%p;=!&if not defined PATH set $path&set/a i-=100>&2&exit !i!" (この実行環境はWindows 7)![]() これで更に連結すると、パス文字分割ワンライナープログラムが一丁あがり ![]() cmd/q/v:on/k "prompt $g &for /L %i in (101,1,199) do set i=%i&for /F "delims=;" %p in ("!PATH!") do set $path!i:~1!=%p&set path=!PATH:%p;=!&if not defined PATH set $path&set/a i-=100>&2&exit !i!">tmp.txt&(for /F "delims=" %A in (tmp.txt) do set %A)&del tmp.txt で、やってみて気付いたのだが、ヘルプの中で、「最初と最後の引用符」みたいに書いてあったが、上記の場合にはちゃんとcmd.exe へ渡すパラメータの外で、連結されていた。(ちゃんと動いている) 引用符直後にリダイレクト記号があるからなのかわからないが、しばらく砂場遊びを離れてから後で見直すと、戸惑うかもしれない。 ※追記※ 上記を 遅延環境変数展開(CMD.exe /v:on)下で実行してはなりません。(バッチ流用時には要注意です) 理由 = !PATH! の文字が引用符内で展開されてコマンド(cmd/q/v:on/k)に渡されてしまいます。 (この現象確認は、Windows XP SP3 においてなされました) xp上で動くchoice コマンドもどきは改善途上だが、少しだけ進化 ▲
by bucmacoto
| 2018-03-07 18:15
| &Tips;&code;
2018年 02月 20日
年末作成のバッチ修正で苦労した。 プログラミング言語が使える人なら苦もない修正だろうが、バッチのみ(せいぜい WSH ≒ VBScript 止まり)で対応させようとすると結構行数が増えていく。 修正箇所はなんのことはない。CHOICEコマンドでの選択枝で分岐する部分。 作ってしまってから気づいたのだが、Windows XPなどには CHOICE.exe が付属していなかった。 そこで、バッチのみで割と汎用的な選択ルーチンを作ろうとして、行数が長いサブルーチンとなってしまった。(詳細は more 欄追記します) まあなんとからしきものはできたものの、CHOICE.exe では可能なタイムアウトでの自動実行処理がどうしても実装できなかった。 そこでいっそのこと、正月にコメント欄で頂戴した助言に従って、VBScript のワンライナーをバッチから吐き出す形にしてみた。そしてこの件は解決をみた。 そうそう。その過程で気付いたことをひとつ。(結構、重要) バッチのラベルって8文字までだと思い込んでいたしネットにもそのような上級者からの助言があったのだが、バッチの砂場で検証したらそうではないらしい。(少なくとも XP以降は大丈夫) つまり、[:TST$parameters.test] などという長かったり拡張子あったりでもきちんと区別して動くようだ。 (ついでだが、ラベル直後に &~~~ とコメントも入れておける。これは exit/b &~~ や goto ~&~~ と同じだった) さて、タイムアウト付きポップアップのサブルーチンはこんな感じ。 :TST$popup はワンライナーを吐き出す(表示する)サブルーチンを呼びだして、.vbsファイルに吐き出させてそれを実行する。(実行前後の時刻表示 、実行後エラーレベル表示 、 終了コードをvbsからの引き継ぎ値にしている) :DSP$popup は VBScript が コロン[:]で区切ることが可能だそうなので、それを利用したワンライナー 横長表示が嫌いな方には申し訳ございません... :TST$popup echo off&call :DSP$popup %1 %2 %3 %4 >$msgbox.vbs&type $msgbox.vbs echo.%time%&cscript //nologo $msgbox.vbs echo %time%&echo.errolevel=%errorlevel%&del $msgbox.vbs&exit/b %errorlevel% :DSP$popup&title / message / vbYesNo+vbQuestion+vbDefaultButton2 / 秒数 echo Dim intRet:Set objShell=CreateObject("Wscript.Shell"):intRet=objShell.Popup("%~2",%4,"%~1",%3):Wscript.Quit(intRet) exit/b このサブルーチンを直接呼び出すための仕掛けは 温故か懐古か発掘か /3 で書いた冒頭2行です。(mvandlog.bat の冒頭) 次のコマンド入力で実行してみます。 mvandlog !/! TST$popup メッセージ実験 "リターンを二番目のボタンに設定"+vbCRLF+" OK:ハイ の戻り値=6"+vbCRLF+" NO:いいえ 戻り値=7"+vbCRLF+" タイムアウトでは時間切れ=-1" vbQuestion+vbYesNo+vbDefaultButton2 09 実行してみてポップアップ表示中の結果はこちら。(文字サイズ大きめだったため画像サイズがブログ表示にフィットできず見にくくて申し訳ない) ![]() イエスを選んでバッチから戻った直後に次のコマンドでエラーレベル確認した。 if not errorlevel 0 (echo.時間切れでした) else if errorlevel 7 (echo.いいえを押しました) else echo.はいを押して errorlevel=%errorlevel% でした ![]() More ▲
by bucmacoto
| 2018-02-20 21:22
| &Tips;&code;
2018年 01月 24日
しばらくバッチ砂場をいじってみよう。 set/a limit=("1<<31"-1)*(-1) この結果は⇒ -1073741824 set/a limit="1<<30" この結果は⇒ 1073741824 上の数(負数)に下の数(正数)を加えてみます。 set/a limit=("1<<31"-1)*(-1)+"1<<30" この結果も⇒ 1073741824 別に論理シフトにいかさまがあるわけではないのでしょうし、PCはそのままに計算してるのでしょうが・・・ これって、アセンブラやってる人とかならすぐ Aha!って言いそうだな ![]() step 3, backstep 2(三歩進んで二歩下がる) ▲
by bucmacoto
| 2018-01-24 17:15
| illusion rhapsody
2018年 01月 24日
@if not "%~1/"=="!/!/" (goto start) else shift&shift&set exec$sub=%2&rem only sub exec[for debug and use tool] といったテスト用サブルーチンでも確かめたから、キャレット付きにすれば英数字(大文字小文字)〜一部記号までを1文字変数で使用可能なのは、コマンドライン限定ではない。set exec$sub>&2&set exec$sub=&goto %0&rem ←このgoto以降は戻ってこない set exec$sub>&2&set exec$sub=&call :%0 %1 %2 %3 %4 %5 %6 %7&goto eof&rem ←こちら戻って来たのを終わらせてる :start :TST$mad @rem for /f "tokens=1-30 delims=;" %%9 in ("%path%") do echo.%%~9&echo.%%~:&echo.%%~^;&echo.%%~^<&echo.%%~^=&echo.%%~^>&echo.%%~^?&echo.%%~@&echo.%%~A for /f "tokens=1-8 delims=;" %%Z in ("%path%") do echo.%%~Z&echo.%%~[&echo.%%~^\&echo.%%~]&echo.%%~^^&echo.%%~^_&echo.%%~^`&echo.%%~a for /f "tokens=1-4 delims=;" %%z in ("%path%") do echo.%%~{&echo.%%~^|&echo.%%~}&echo.%%~^~ exit/b 赤囲み Windows XP 緑囲み windows 10 ![]() ![]() 上記の文字範囲が、連続して変数にできる文字。(漢字変数は文字コードが連続していてもダメケースを確認) マルチバイトの記号領域はいけるかもだけど、確認検証は他人にお任せしたい。 単バイトの一部文字は特殊な意味・役割をもっているのだが、キャレット付きで変数として使用可能にしているという結論に。
for / f "tokenes=...." で、最大 tokens が31なのが残念。一気に長〜い展開できるなら、使い所があるかもです。 windows XP / 10 での動作確認結果 ▲
by bucmacoto
| 2018-01-24 13:37
| &Tips;&code;
2018年 01月 09日
ものすごく久しぶりなバッチいぢりだったので、この一ヶ月半ほどは21世紀のWindows CMD.exe の知らなかったことを、知ることができた。
同時に知っていると思っていたことが間違いだったと思い知ったり、それとは対照的に、昔の知識や伝聞が今になって活かせたりした。 記憶にある最初のコンピュータ言語は Basic で、これはプログラミング言語であると同時に、マシン制御システムを開発することもできたらしい。 (CP/M やら UNIX などは、耳にはしても実際に目にすることはなかった。) PC上で動き、コンパクトさと融通無碍さで、シェアをとった。 私が、成人してから購読したパコソン誌も、The をつけてその名前を冠していた。(後期には ざべ という平成風の名になったのだが) MicroSoft社の Bill Gates氏がそのコードのかなりの部分を書いたのは間違いないらしく、その小さなコードがいかに多様に動くことのできるものかを誇っていたという。 大きな会社に成長してからも、社内の若手といかに小さなコードを書くことができるか、競う誘いをすることもあったらしい。(これは雑誌の記事からの受け売りではあるが、私は信頼性ありと思う) Windows の前身となった MSDOSは、IBMとの共同開発であり、IBM PC(AT/PS2)はPCDOSの名で、他社への供与はMicroSoftが行った。元々のDOSコードは、他社からのライセンス供与を受けた(後に買い取りをした。IBMとの関係を隠匿していたと、開発元から訴訟もあった)ものではあったが、Gates氏の好みは反映されていたと考えるのが自然だろう。 DOS当時のデバイス制御機能は IO.SYS という名前のファイルが受け持ち、ユーザーからのコマンド入出力を担当するコマンドインタープリタは COMMAND.COM、その両者のファンクションコールを仲介するのが MSDOS.SYS という役割分担だった。 最低、この三つでシステムは起動できる設計だったが、その分(特に機器制御を担うIO.SYSで顕著)機種固有のファイルでなければ動かないものだった。またメーカーの独自色が出る設定(例えばIBM PCはフロッピー2台分のドライブ名を固定し、ハードーディスクが C: に決め打ち。対してNEC PC98は 起動ドライブ名に A: のドライブレターを割当てる)も、このファイル内にあった。 文字ベース制御のDOSから、グラフィカルな面構えのWindowsへの移行は、(当初は OS/2 という路線だったが暗礁に。そして、IBMはOS/2を最終的に完成させたものの、MSのWindowsに市場を抑えられた後の祭り)未完成品扱いを受けながらも急速に進んだ。 一般にはキャンペーン上手と開発者の囲い込みに成功した経営戦略のことばかりが言われているが、Basic も DOS も Windows も共通するのは、「ちょっと先には次の手があるよ」と自然に思えるようなからくりが込められていたから。そのように(政治的駆け引き素人な)私などは思っている。 公開されるプログラミング手続き(ファンクションコール)だけではちょっと難しいことや不可能なことが、いわゆる隠しファンクションコールのような手続きで見事に解決される仕組みを作りこんでありながら、(その後の仕様変更次第という理由かもしれないけれど)その辺りを見えそうで見えない風に焦らせるテクニックの集大成だろうかと。 うん。。そういうのって昭和の性風俗だったストリッパーの手管と共通項に思えなくもない。 全部は見えない、けれど最短の範囲で、次の手が決定できる。これは、論理を形成する上で、そして高速に処理をする上で欠かせない要件だと思う。(ちなみに、DOS時代の IO.SYS は、プリンタや高解像度モニターのドライバを内包しきれないため外部化し、それらを設定ファイル CONFIG.SYS という名のテキストファイル。この中身は set コマンドで読み込むファイル名を記述してあり、MSDOS.SYS がそれを順次読み込みながら起動する仕組みとなっていた) 事実上は決まりきっていて変更不能や変更不要に思えるものも、あえて変更することができる仕組みにした。(CONFIG.SYS の最後にある SHELL=COMMAND.COM の書き換えけで、別のフォルダやコマンドファイルを自動起動させるようにしてあった) 今回かなーり頭を悩ましたおかげか、なんとなくだがコマンド上の文字の扱いを(薄ぼんやりとだけれど)分かってきたみたいなので、自分なりの解釈を残しておこう。 ところで、完全放置だったこのブログ、メニュー欄を修正しようとして、(エキブロの)メモ帳の仕様に閉口した。 ちょっとトリッキーな書き方もあるので、【改行を<br>にする】を外して書いたのだけど、保存するたびに(それがほんの1文字でも。。。いやいや開いてそのまま保存し閉じただけでも)一定のルールのあちら解釈で処理される。 その結果、<br/> と書いたタグは全て <br> 化され、次の処理ではキレーに改行が消え去ってしまうという謎な動作仕様 ![]() その時には同時に   のような文字実体参照記述も、実体文字へと強制置換される。(一見分かりやすげに見えて結構困る=ソース見ても本当のいわゆる半角空白なのかどうかわからないから修正しようが無くなる) 挙句、両横に空白を伴った" " は、→ ・・・(ry なんだかなぁ。。。初心者ユーザに優しいのはいいし無茶記述を潜り込ませないという思想もよろしいのだけれど、でたらめに書き変わっちゃいけないでしょー。(嘘はよくないよー。) まあ、そのおかげで(〜<br/> を排除して <div> 〜 </div> にするため)、macのテキストエディットやメモ帳の 文字検索機能と置換機能を知ることができたから、今回は怪我の功名とも言えるのですけど。 もうこれって、おそらくたぶん、【仕様】になってるんだろうなぁ。。。 で、その置換機能に頼らず直打ちした文字でかなりタグが壊れてしまったのですが、最も分かりにくくて思わず一時間以上探求して解明したのが(Windowsの等幅フォントでは一目瞭然なんだけど、macはオシャレな字面なのでね・・・)、 ” と " との誤入力でした。 ” と " です。 ” と "”と" です。(大事なことなので三回書きました w)
more ▲
by bucmacoto
| 2018-01-09 01:25
| quote/data
2018年 01月 06日
昔のDOSを含めある種の環境変数には特別な地位が与えられ、かなり固有の特権を有している。
特に、内部コマンド(path , prompt , date , time など)で扱えるようになっているものは、ローカル変数扱いに過ぎず親環境には反映できない。 コマンドの挙動も特有化していて、パラメータなしで入力しただけだと path ⇒ 変数 %PATH% を表示、パラメータつけると追加 prompt ⇒ 変数 %PROMPT% をクリア(← set prompt=&rem と同じ)、パラメータつけると set PROMPT=パラメータ date / time ⇒ 変数 %DATE% / %TIME% の設定(ただし管理者権限でないと変更不能) という具合です。 ここで %date% %time% の両変数は、変数としては存在しているのに set コマンドで表示も消去もできないです。 > if defined date for %C in ("echo.変数dateはあるようです消してみます" "set date=" "echo.再確認してみます" "set date" "call echo.変数 %DATE% =%date%となっています") do %~C 上のワンライナーをコマンドラインで入力した結果が下記 > echo.変数dateはあるようです消してみます引用符つきでもしっかり展開されるのはどうみても健在ですね。 その一方でキャレット [^] はエスケープにならないと判っていてもつい頼るので、次の例示 今度はバッチで実行. 引用扱いが、コマンド出力だったりバッチ内容の方だったりするのは、ご容赦を type temp.bat @rem if defined は 変数 %date% が存在しているという意味で、必ず trueです。一行を縦並べに書くために使ってみました。 実行結果 (投稿後、二重引用に気付き削除修正済) > if defined date (
echo 単純引用は変数が消えます ⇒ "" echo キャレットまみれも無駄 ⇒ =0 echo 二重で %date%=%date% echo ダブル % だと %time%=%time: =0% rem for の変数の形で引用符に入れて実行してみます for %c in ("echo 引用符内でも単純引用はやり消えるかな ⇒ " "echo キャレットまみれはどうだろう = =0" "echo キャレットなし二重はこう %date:/=%" "echo 普通にダブルでもいける %time: =0%") do %~c ) 単純引用は変数が消えます ⇒ "" キャレットまみれも無駄 ⇒ =0 二重で %date%=%date% ダブル % だと %time%=%time: =0% > echo 引用符内でも単純引用はやり消えるかな ⇒ 引用符内でも単純引用はやり消えるかな ⇒ > echo キャレットまみれはどうだろう = =0 キャレットまみれはどうだろう = =0 > echo キャレットなし二重はこう %date:/=% キャレットなし二重はこう %date:/=% > echo 普通にダブルでもいける %time: =0% 普通にダブルでもいける %time: =0% > rem 引用符がないと、うまくいくっぽいけれど、キャレットの意味はないなぁ > for %c in ("%d^ate:/=%" %date% %time%) do echo %~c > echo %d^ate:/=% %d^ate:/=% > echo %date% %date% > echo %time% %time% バッチのなかから echo %date% と書くのと、コマンドラインで打つのでは結果が違うんですね。 > echo %date% %date% > echo.echo %date% 1>>test.bat & call test.bat & del test.bat > echo 2018/01/06 2018/01/06 でもこれで、call で展開される理由づけになったか > echo %date% %date% > call echo %date% 2018/01/06 More 1押し ▲
by bucmacoto
| 2018-01-06 23:21
| &Tips;&code;
2018年 01月 04日
実のところ、遥か昔(バブル期)に、MSDOS 3.1 あたりから win 3.1 くらいまではコマンドプロンプトいじりに燃えてたものの、win 95 始まるあたりからは環境オタクな作業も消えた。今回初めてNT系以降の拡張された環境変数の機能を知った。その程度で、かなり喜べたほどの低レベルオタクなので、当初の目的が達成できたことで舞い上がっていた。
(環境変数内の子指定を変数でできるとか、二重callで遅延環境みたいに動くとか新発見気分) ですが、よく考えたら挙動をきちんと理解できてはいないし、自宅には やや古いmacはあってもPCはないので、この機会に少しまとめておこうと思う。 コマンドラインから直接打ち込んだ場合と、バッチ内で引用しようと思った場合、違うというのもある。 まずは、少しずつ ▲
by bucmacoto
| 2018-01-04 23:02
| &Tips;&code;
2018年 01月 01日
昨年末にほぼ20年ぶりにバッチと格闘しました。
もっとも30年前~20年前くらいまでの間、AUTOEXEC.bat や CONFIG.sys ばかりいじっていただけです。 それでも仕事がらみで、隔離されたセキュアな環境(つまりWindows標準のものしか使えない)で、最多のマシンがXP(8割)という状態で、ニッチ業務なので自力でやってみたら、大いにハマりました。 やってることは、あるフォルダ配下の複数サブフォルダに画像サーバーから吐き出された同質ファイル=サイズ誤差数十バイトなやつらを、サイズチェックして、一貫性のある名前にして、別途排出のINDEX参照して、IDや性別をファイル名にもたせ、それを転送先に移動し、相手先に通知する。だけなので、まあバッチでできたのですが、その過程でいろいろいろいろ気付いて年末は悶絶してました。 インターネット上の情報にずいぶん助けられ、勉強になったので、少しでも恩返ししようと記事を書くことに。 バッチ職人なんて、かつてのMultiPlan職人ぐらいに先行き滅び去るのでしょうが、まあ、歴史的観点で俯瞰すると似たことってありそうなものなので意味もあるかなって思ったのです。 More(とりあえず、正月だけ平均一日一題くらい数日書く・・かも) ▲
by bucmacoto
| 2018-01-01 22:03
| &Tips;&code;
2014年 11月 28日
内容としては、おそらくほんの短期間なネタ話。
iPhone 6/6plus 出たあとで今更なdocomoメールの話です。 本題前に、この4年間の近況報告しておきます。 今、、入院中です。苦笑 DVT+PEで、昨夜下大静脈フィルタを置いて一安心したところ。 どうやらこの夏に半ばサービス残業の仕事をやりすぎて、毎週末のテニスを減らしたのが原因のひとつ。9月に胸痛あってその2週前に右足ばかり痛かったのでその頃の発症と推定。 テニスは3年半前にやり始めて、(30年間に中古で買ったラケットを引っ張り出して)昨年はようやく草大会のBクラス優勝。相方は私より半年後に始めた学校教諭♂。まあ、これはまぐれ。 メタボ対策に壁打ちから始めてハマったのですが、職場施設で使用機器の更新やら、新作業の増加やらで、キーボード作業が激増したものの、週末時間を注ぎ込んだテニスでようやくバランスがとれていたっぽいです。 ところが、この夏はコート確保やメンバー間連絡に尽力してくださっていた方が体調崩し、プレー時間が激減。さらに私も、書類の電子化で千件超にデータを処理するのに一ヶ月もテニス禁欲して、とうとう下肢静脈血栓症+肺塞栓に至った次第。ちなみに2週間前に冠動脈CTAや心エコーや動脈硬化判定用脈波速度検査などは、オールクリアだったのです。血管年齢が実年齢より十歳若く出たしね。 ところが、CRPなどの炎症マーカーが上がってDダイマーの検査は正常上限の5倍。そこに持ってきて先週の月曜にワークステーション作業で根を詰めたら右下腿が熱を持って腫れて痛み出しました。 ということで、状況的に深部静脈血栓症 ーー 一昔前にエコノミー症候群 いまは ロングフライトシンドローム(ファーストクラス座席でも発症するから?)でありそうとは心当たりがついたのですが、今週になって急速に膝上まで痛みが広がり、静脈弁のところで押すと痛い上に、歩いてポンピングしても楽にならない。これ、先週は数キロも歩くと少し腫れが楽になったのですがね。。 結局昨日午後に検査した時点では、深大腿静脈と大伏在静脈がほぼ血栓で埋まっていた次第です。 では、本題に。 docomoがiPhone/iPadを扱うようになって、MVMOな安いSIMでも通信が行えるようになってきましたが、その恩恵にやすぅーーく預かりたいと思うと結構はまりまして。。その記録です。 状況は以下の通り。 もうすぐ高校生が終わる娘は2年以上前からスマホが欲しい。でも親は否定的だし、小遣いも少ないし、バイトはあまりやりたくない。その気持をdocomo店の若い店員さんに、タブレットの二台持ちがお得 と勧誘され、foma(3G)のガラケーに加えてXi(lTE = 3.9G)Androidタブレットを契約した。 しかも最初の月は。iモードとXi両方を使ってしまったため、15K円を超える請求に泣いた。タブレットの方はタダという理解で契約したらしい娘にとってはタダどころの騒ぎではなかった。 そして今年の8月に二年縛り明けの違約金なしで解約可能な月だったので、タブレットを解約した。SIMアンロックした、タブレットに500円SIM入れて運用を開始。 ところがこのタブレットの、9月半ばに故障し、修理する羽目に。。なんとか母親が抗議して、購入時に3年間の故障に対応という文言みつけ、修理自体は無料。しかしながら、なんとこれで4回目の修理となる故障だったらしい。そしてLINEなしではいられないいまどき娘は、iPhone 4sを友人から貰った。 そのau版iPhone 4s に、docomo系MVMOのSIMで通信し、Iモードのメアドを使えるようにするのが今回のミッションでありました。 foma SIM(フューチャーフォン=ガラケー内UIMカード)とAndroid 2.3.4(SO-03C = Xperia RAY) ▲
by bucmacoto
| 2014-11-28 22:39
| &Tips;&code;
2010年 08月 01日
北海道には梅雨がないといわれる。
その一方で、蝦夷梅雨などという言葉もある。 東アジアはモンスーン気候といわれる。 小学生の頃、モンスーンとタイフーンと語感が似ていたので 『台風が通るような気候帯』 なんじゃないかと思ったものだ。(苦笑) モンスーン - Wikipedia ある地域で、一定の方角への風が特によく吹く傾向があるとき、その風を卓越風と呼ぶが、季節によって風の吹く方角(卓越風向)が変化するものをモンスーン (monsoon) と呼ぶ。アラビア語の季節(モウスィム、الموسم、Mawsim)に由来する用語である。 季節風が季節をもたらすのか、季節の変化(地軸の23.4度の傾きと公転軌道)が風を運んでくるのか、どちらの視点も正しいから、私のような理論的原理主義者は混乱する。 ・空気暖まって軽くなり、上昇気流となり地表の気圧が下がり低気圧となるから、風が吹き込む。 そして昇した空気は上空に昇ると水蒸気が冷やされ、雲雨氷を生み潜熱を放出しさらに熱くなり軽くなる。 それと ・高気圧とは上空に流れ込んで来た風の、地表への吹き下げ口。ダウンプルーム(下降流)。 空気は上昇する場合には膨張することで温度を下げる(雲雨氷となる潜熱はそれを緩和)。 下降する場合には、圧縮されることで(水の相変化が伴わないから断熱圧縮に近い)、高温であるほうが圧力が高いということになる。 実際には、このふたつの要素は、上も下も正しい(and関係)にあるようだ。 しばしこういた気象の解説を聞くと、どちらが正しいの?(一方が成立するから従属的にもう一方がそう見えるだけ = or関係にあるんじゃないの?)という解決不能の疑問符に囲まれてしまうのが、いわゆる原理主義者の苦悩である ^^; 日本付近は、4つの気団がせめぎあっているという。 南風(これは大陸規模で生じている、いわゆる海風に相当する)が優勢となる境界となるのが梅雨前線。北風が(こちらは山風・陸風に相当)優勢となってゆく季節には秋雨前線と呼ばれる。 海陸風 - Wikipedia 秋雨の経過とその特徴 - Wikipedia 今年の北海道の東部地域は、冷夏だった昨年よりもかなり温暖となっている。特に6月前半は暖かくて日射量も多かった。7月の気温は上がり気味(一昨年の猛暑には及ばない)なのだが、日射しが足りない気がしている。(今年と平年との、降水量と日射量が下図) 平均温 6月 7月 8月 今年 15.7℃ 17.9℃ 2009 13.0℃ 14.8℃ 18.2℃ 2008 12.1℃ 18.0℃ 18.7℃ 平年値 12.3℃ 16.8℃ 19.2℃ ![]() グラフを見ていると、蝦夷梅雨の実感が少し感じられます。 More ▲
by bucmacoto
| 2010-08-01 15:14
| particle
|
おきにいりすと
closing / sleeping
イラスト
わるとも
Photo plus α
からだ と こころ
archive in this blog
統計資料・PC史資料など
勝手に応援
machine translation
以前の記事 カテゴリ
タグ
日記録(345)
市内風景(296) 小さな説(255) 写真と画像(217) 詩もどき(180) 回顧(109) おふざけ(94) science(79) 備忘Log(63) おはなし(61) &Tips;&code;(61) 夢想(57) 冬雪景(48) nursery(36) (?_?)(30) my function & character(29) star&moon(29) aha♪ / esprit(28) work_list(22) 食記録(18) 若者への手紙(17) present(13) 一画一句(11) 文・人・理(9) 春花草木(8) 記事ランキング
最新のトラックバック
検索
その他のジャンル
ファン
|
ファン申請 |
||