Indexへ
(15558)//【15549】→(15562)
------------------------
【タイトル】バッチファイルに書く powershell 外部変形 について
【記事番号】 15549 (*)
【 日時 】09/07/20 18:47
【 発言者 】Kazuo Miyake qqza3hq89@aioros.ocn.ne.jp
【 リンク 】http://www17.oc.ne.jp/~lite/
powershell は Windows の 新しいシェル
ということですが、いまのところ 処理速度
が遅かったり、古い機種では 利用できなか
ったりで、実用性には疑問が残ります。
それでも powershell も バッチファイル
にべた書きすることができるようなので、
報告します。(まちがいを恐れないでいえば
powershell -x のようなものです。)
以下は参考資料です。
・PowerShellスクリプトをバッチファイル化する
PS2CMD.CMD V1.01 (C) 吉岡さん 2007-09-04
http://www.vector.co.jp/soft/winnt/util/se436989.html?site=n
more コマンドを利用して powershell を
起動する 曲芸のようなやり方ですが、動き
ます。
線を引く例題です。
:線を引く
@echo off
REM #jw
REM #1- 線の始点を指示してください。
REM #2 線の終点を指示してください。
REM #e
more +8 %~f0 | powershell -command -
goto:eof
# ここから
(get-content jwc_temp.txt) | foreach {
switch -regex -case ($_)
{
'^hp1-\s+(\S+)\s+(\S+)' { $p1=$matches[1,2] }
'^hp2 \s+(\S+)\s+(\S+)' { $p2=$matches[1,2]
"$p1 $p2"
}
}
} | set-content jwc_temp.txt
exit #ここまで
:exit のあとには 必ず空白行を置いてください
more +8 %~f0 で %~f0ファイルの 8行目
以降が表示されます。そこに スクリプトを
書いておいて | powershell -command - で
実行させる、手の込んだやり方です。
ファイルの先頭 :線を引く は 0行目 と
なります。
# は powershell のコメント行です。
パワーシェルは jwc_temp.txt を 読み込
みながら jwc_temp.txt に 書き込むような
作業ができるようです。とても強力です。
参考までに
(gc jwc_temp.txt) | foreach { 〜 } は
ruby なら
open("jwc_temp.txt").each { |$_| 〜 }
や
$stdin=open("jwc_temp.txt")
while gets 〜 end
に相当します。
switch -regex ($_) { 〜 } は
ruby なら
case $_; when 〜; end に相当します。
"$p1 $p2" は パワーシェル特有の出力文
のスタイルで
write ([string]::join(' ',$p1+$p2))
とも書けます。
ruby なら
puts ($p1+$p2).join(" ") です。
| set-content jwc_temp.txt は パワー
シェル特有のファイル出力で ruby にはあ
りません。それでも
$stdout=open("jwc_temp.txt","w") と
すれば似たような処理はできますが やは
り パワーシェルのファイル処理は一味違
います。
さて、おそらく
このやり方は曲芸なので 動作に不具合が
でることが、あるかもしれません。 いまの
ところ awk や ruby よりも powershell が
扱いやすいとは思えませんが 扱いにくくも
なさそうです。
皆様方のご健康とご活躍をお祈り申し上
げます。
記録 2009.07.20 三宅
Indexへ
(15549)←【15562】→(15564)
------------------------
【タイトル】Re(1):バッチファイルに書く powershell 外部変形 について
【記事番号】 15562 (15549)
【 日時 】09/07/23 20:37
【 発言者 】mirror
▼Kazuo Miyakeさん:
今晩は
少し論点が違うので恐縮なのですが、前から気になっているので
jwwのクリップボードデータを、jwc_temp.txtやztemp.txtの形式で出力して
ブロック図形の内部要素もアクセス可能にするとかの、需要はありそうでしょうか?
(ライブラリ形式で、shellの枷から抜けて自由度を上げられるようにし
オンメモリーでデータ渡しのほうが良いのかもしれないですが)
私自身は、jwwの外部変形や座標ファイルでの
ブロック図形の内部要素へのアクセス実装を、期待して待っているのですが・・・
Indexへ
(15562)←【15564】→(15565)
------------------------
【タイトル】Re(2):バッチファイルに書く powershell 外部変形 について
【記事番号】 15564 (15562)
【 日時 】09/07/25 14:00
【 発言者 】Kazuo Miyake qqza3hq89@aioros.ocn.ne.jp
▼mirrorさん:
>▼Kazuo Miyakeさん:
>今晩は
>少し論点が違うので恐縮なのですが、前から気になっているので
>
>jwwのクリップボードデータを、jwc_temp.txtやztemp.txtの形式で出力して
>ブロック図形の内部要素もアクセス可能にするとかの、需要はありそうでしょうか?
>(ライブラリ形式で、shellの枷から抜けて自由度を上げられるようにし
>オンメモリーでデータ渡しのほうが良いのかもしれないですが)
>
>私自身は、jwwの外部変形や座標ファイルでの
>ブロック図形の内部要素へのアクセス実装を、期待して待っているのですが・・・
ブロック図形の外部変形については、あまり考えたことがありませんでした。
私なりに、ブロック図形関連の外部変形をすこし研究してみました。
外部変形のブロックデータは
BL %lg %lg "ブロック名
#
座標リストとブロック名の単純な組み合わせですから
これだけでは、なかなか使いずらいような気がします。
それでも、ブロック名を利用した実用的な外部変形も
いくつか公開されているようです。
mirror さんのおっしゃる 内部要素へのアクセスの実
装で
BL %lg %lg "円
ci 0 0 100
#
のようなことが実現できれば、便利だと思います。
単なる思いつきなのですが 読み取りのみ有効な
ブロック文字は、期待できないものでしょうか
cBL x y lx ly "ブロック名
のようにして 外部変形でコピーや回転ができれば
便利かもしれません。意味がないかもしれません。
ともかく、外部変形でも
ブロック編集からではなく、直接ブロック図形を
扱えるようになれば、便利であることはいうまでも
ないことだと思います。
私自身は、jwwデータを直接解析するような能力が
ないため、クリップボードの扱いについてはわから
ないのが事実ですが、クリップボードのデータを
jwc_temp.txt や ztemp.txt に変換できれば、便利
になることは間違いないと思います。費用対効果に
ついてはわかりません。
とりとめのない話になりましたこと、おゆるしください。
Indexへ
(15564)←【15565】→(15581)
------------------------
【タイトル】Re(3):バッチファイルに書く powershell 外部変形 について
【記事番号】 15565 (15564)
【 日時 】09/07/25 20:15
【 発言者 】mirror
▼Kazuo Miyakeさん:
お返事ありがとうございます
私自身は、直接クリップボードデータを別のプロセスで処理して
jwwにクリップボードから書き戻しているので、中間ファイルは使わないのですが
例えば、中間ファイルに書き出すとした場合、書出・読込についての定義情報が
現在のjwwには無いので、独自なものにならざるを得ません
独自に定義を行って、有用な多くの外部変形を編集してブロック図形に対応させても
今後jwwで実装された場合の事を考えると・・・躊躇しているというのが本音です
>>費用対効果・・・
(費用)は別にして、効果についてはあるだろうと思いますが
今までにも公開されていないし、あまり差し迫って必要なものでも無いのでしょう
・・・というように思い始めました
返信ありがとうございました
Indexへ
(15565)←【15581】//(15552)
------------------------
【タイトル】Re(1):バッチファイルに書く powershell 外部変形 について
【記事番号】 15581 (15549)
【 日時 】09/08/02 17:44
【 発言者 】Kazuo Miyake qqza3hq89@aioros.ocn.ne.jp
【 リンク 】http://www17.ocn.ne.jp/~lite/
powershell 外部変形 の 簡単な例をいく
つか ホームページで紹介しています。
興味のある方はどうぞ。
( 題名 : てなもんや 外部変形 )
ホームページは
http://www17.ocn.ne.jp/~lite/ です。
more +n %~f0 | 〜 で バッチファイルに
プログラムを書く やり方は ruby でもでき
ます。
awk でも
more +n %~f0 > prog.awk
〜
などとすれば バッチファイルにプログラム
を書くことができるので便利です。
(prog.awk を 作ったあとで実行する)
皆様方のご健康とご活躍をお祈り申し上
げます。
記録 2008.08.02 三宅