| tohsiさん、こんばんは。 横から失礼します。
私も基本的にはcoolyoppeさんの手法をお奨めします。 唯、その場合正規表現をある程度習得する必要があります。
当面の業務に必要な場合下記の外部変形で可能ですので 参考にしてください。
この外部変形にはmswin32Ruby1.8.1が必要です。 (hikari様のJ_GARU Ver2.0というソフトで自動導入できます)
正常に導入された場合は|BAT 編集|項目をクリックしますと 左上にruby 1.8.1が表示されます。
バッチファイル名は「文字列置換.bat」としてください。 ######下記よりメモ帳にコピペして全角スペース→半角スペースの置換してください。 @REM 文字列置換 @echo off goto do%1 rem rem ---------------------------------------------------------------- rem ※このファイルを編集した場合は上書き保存してください。 rem ※ファイルを閉じなくても編集は反映されます。 rem ---------------------------------------------------------------- rem rem ※注意点 rem rem 1.置換対象文字列は全レイヤグループです。 rem (寸法図形の寸法値、ブロック図形は対象外) rem rem 2.置換後の文字列は置換前の文字列の属性を継承します。 rem rem 3.置換文字列を個別選択したい場合は適当な処を範囲選択の後 rem 左または右クリックで取得 rem REM #jww REM #cd REM #hm |文字列入力型|文字列指定型|BAT 編集| REM #:1 REM #h3 REM #g1 REM #hc 置換する文字列を範囲選択(寸法図形、ブロック図形対象外) REM #c 置換文字列入力: /_/a REM #zz REM #zc REM #bz REM #hr REM #e REM #:2 REM #h3 REM #g1 REM #hc 置換する文字列を範囲選択(寸法図形、ブロック図形対象外) REM #1ch 図面内の置換文字列をマウス指示(L) REM #zz REM #zc REM #bz REM #hr REM #:3 REM #h0 REM #hr REM #e :do1 :do2 copy jwc_temp.txt temp.txt > nul ruby -x %~f0 temp.txt %1 %2 > jwc_temp.txt del temp.txt rem pause exit goto END :do3 start notepad.exe 文字列置換.bat ruby -e 'puts "h# ruby #{RUBY_VERSION} "' > jwc_temp.txt goto END #!ruby -Ks while ARGV.length > 1 case argument = ARGV.pop when /^[1-2]/ koumoku = argument.to_s when /^\/a/ moji0 = "\""+argument[2.. -1].to_s end end if koumoku == "1" && moji0 == nil puts "he 置換文字列が入力されていません。"; exit end datas = [] while ARGF.gets if $_ =~ /^hq/ puts "hd"; puts "bz" elsif $_ =~ /^hhp1ch/ ARGF.gets ele = split; no = $_.index(/\"/); moji0 = $_[no..-1].to_s datas << $_ else datas << $_ end end datas.each{|data| if data =~ /^c[hvsroptkz2]\s/ ele = data.split mc = ele[0].to_s; ele.collect!{ |item| item.to_f } puts [mc,ele[1,4],moji0].join("\s") else print data end } # :END #######以上です。
|