トップページ > プログラム > 2014年11月14日 > ptj087p2

書き込み順位&時間帯一覧

9 位/245 ID中時間01234567891011121314151617181920212223Total
書き込み数0001010000000200000000105



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
【.cmd】 バッチファイルスクリプト %10 【.bat】
Regular Expression(正規表現) Part13©2ch.net

書き込みレス一覧

【.cmd】 バッチファイルスクリプト %10 【.bat】
856 :デフォルトの名無しさん[sage]:2014/11/14(金) 03:39:01.31 ID:ptj087p2
結局質問者のUTF-8使用時に色を変えたいってのは
どういう意味だったん?
【.cmd】 バッチファイルスクリプト %10 【.bat】
858 :デフォルトの名無しさん[sage]:2014/11/14(金) 05:37:24.74 ID:ptj087p2
フォントを先に変えておいて、chcp 65001で
typeコマンドでutf-8ファイルを表示することは出来るけど
クリップボード経由で貼り付けると表示が崩れるし、
IMEも起動出来ないのはまあ良いとして、
batが動かないのはどうしてだろう?
【.cmd】 バッチファイルスクリプト %10 【.bat】
860 :デフォルトの名無しさん[sage]:2014/11/14(金) 13:47:40.71 ID:ptj087p2
>>859
bat自体はSJISなのでBOMは当然なしです

XPだとchcp65001の間は,batファイルが読めないみたい
ただし、bat中でchcp65001とchcp932の間に命令を挟んで全体を()で括ってやれば
コマンドインタープリタが1行で読み込むので実行することはできるが
XPではchcpでclsされるのでpauseとかで止めないと表示が見えない
またbatファイルもSJIS以外はダメなので、UTF16やUTF8で作れない
cmd/u環境でもbatはSJISじゃないとダメだった

Vista以降(多分)で上記のようなバグは修正されている模様

で、結局はUTF8を扱うのはWSHに頼るのが良いという結論に達した
ただし、WSHでUTF16やUTF8ファイルを読み込むにはBOM付きじゃないといけない
WSHはUTF16で動作しているのでUNICODEにのみある文字もコンソール表示可能
でも標準入出力やパイプやパラメタでのデータ渡しでUNICODE文字は?に変換される

次に、WSHのサンプルをあげとく
【.cmd】 バッチファイルスクリプト %10 【.bat】
861 :デフォルトの名無しさん[sage]:2014/11/14(金) 13:58:33.90 ID:ptj087p2
@if (0)==(0) echo off
rem for /f %%i in ('cscript //nologo //e:jscript "%~f0" "read" "utf8.txt"') do echo.%%i
cscript //nologo //e:jscript "%~f0" "read" "utf8.txt"
type "utf16.txt"|cscript //nologo //e:jscript "%~f0" "write" "xxx.txt"
echo 追加データだよ|cscript //nologo //e:jscript "%~f0" "append" "xxx.txt"
goto :eof
@end

var args=WScript.Arguments;
if(args.length<2) WScript.Quit(-1);
var cmd=args(0), filename=args(1);s='';
switch(cmd) {
case 'read':
var strm = new ActiveXObject("ADODB.Stream");
strm.Type=2; strm.Charset="utf-8";
strm.Open(); strm.LoadFromFile(filename); s=strm.ReadText();
WScript.Echo(s);
break;
case 'append':
case 'write':
var strm = new ActiveXObject("ADODB.Stream");
strm.Type=2; strm.Charset='utf-8'; strm.LineSeparator=10; //-1:CDLF 13:CR 10:LF
strm.Open();
if(cmd=='append') {strm.LoadFromFile(filename);strm.Position=strm.size;}
while (!WScript.StdIn.AtEndOfLine) strm.WriteText(WScript.StdIn.ReadLine(),1);
strm.SaveToFile(filename , 2);
}
strm.Close();
strm=null;
WScript.Quit(0);
Regular Expression(正規表現) Part13©2ch.net
47 :デフォルトの名無しさん[sage]:2014/11/14(金) 22:33:50.86 ID:ptj087p2
任意の1文字にマッチは普通[\s\S]って書かないか?


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。