« ユーザー定義関数 | トップページ | 連想配列 »

2018年11月16日 (金)

コマンドライン引数

前回の線属性変更(選択)の外変を、
コマンドライン引数を使用するスプリクトにしました。

コマンドライン引数は、jsprict %0 の後に、%1 を追記し、
オブジェクトを、arg=WScript.Arguments と宣言することで、

線色/線色の分岐パラメータ(1 or  2) が、JScriptで利用できます。
値を呼び出す場合の添え字は、[ ]ではなく ( ) で括ります。
複数のコマンドライン引数がある場合は、
CSprict %0 %1・・・・・%nと、必要な数を追記します。
@if(0==1) //線属性変更(選択)2
@echo off
goto %1
REM #jww
REM #cd
REM #hm|線色 (L)|線種 (R)|
REM #:1
REM #:2
REM #h2 範囲内データ・範囲内外に跨る線データを選択
REM #ht10 ブロック図形除外
REM #ht30 寸法図形除外
REM #ht40 ソリッド図形除外
REM #hc 図形を範囲選択してください
REM #1ln 線属性を指定する線(曲線は除く)を(L)クリック
REM #e
:1
:2
copy jwc_temp.txt temp.txt
cscript //nologo //e:jscript %0 %1
del temp.txt
goto:eof
@end
/////
//コマンドライン引数
arg=WScript.Arguments
sel=arg(0) //線色⇒1、線種⇒2
//対象図形:線、円、円弧、楕円、楕円弧、曲線
fs=new ActiveXObject("Scripting.FileSystemObject")
r=fs.OpenTextFile("temp.txt")
//変更する線属性を取得
while (!r.AtEndOfLine){
data=r.ReadLine()
if(/lc/.test(data)){
tlc=data} //線色
else if(/lt/.test(data)){
tlt=data} //線種
//指定線の線属性
else if(/hhp1ln/.test(data)){
lc=tlc;lt=tlt}
else{}
}
r.Close()
//"jwc_temp.txt" 再読み込み
w=fs.CreateTextFile("jwc_temp.txt")
r=fs.OpenTextFile("temp.txt")
//属性変更
while (!r.AtEndOfLine){
data=r.ReadLine()
if(/hq/.test(data)){
w.WriteLine("hd") //再作図
}
//線色書換え
else if(/lc/.test(data)){
if(sel==1){
w.WriteLine(lc)}else{
w.WriteLine(data)}
}
//線種書換え
else if(/lt/.test(data)){
if(sel==2){
w.WriteLine(lt)}
else{
w.WriteLine(data)}
}
else if(/hhp1ln/.test(data)){} //スキップ
else{
w.WriteLine(data)
}}
//ファイルクローズ
r.Close();w.Close()
//2018.11.16 by somem

|

« ユーザー定義関数 | トップページ | 連想配列 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: コマンドライン引数:

« ユーザー定義関数 | トップページ | 連想配列 »