ご利用前に必ずお読みください
> > shell.Run 、どうにかして標準出力が取れるようにはできないでしょうか? Perplexity先生に聞いてみたところ 、できそうな雰囲気の回答が返ってきましたね (未精査ですが…)。 > > Perplexity 先生の回答を試してみました。 > > …が、そのままコピペしただけでは`CreateProcess`でクラッシュしてしまいました😅 > > > また、興味で軽量curl的なものを探してみたところ、Rustで書かれた人気のありそうなコマンドラインツールも見つけました。 > > ducaale/xh: Friendly and fast tool for sending HTTP requests > > `xh`は面白そうだったので試してみたのですが、どうやら標準出力だけでなく、標準入力も必要なようです。 > > `curl.exe`の場合は特に問題なく動作しますが… > > curl の場合: > > ```javascript > var shell = new ActiveXObject("WScript.Shell"); > var exec = shell.Exec("C:\\Windows\\System32\\curl.exe https://www.haijin-boys.com/"); > > var output = ""; > > while (!exec.StdOut.AtEndOfStream) { > output += exec.StdOut.ReadLine() + "\n"; > } > outputBar.visible = true; > outputBar.writeln("出力結果:\n" + output); > ``` > > xh の場合: > > ```javascript > var shell = new ActiveXObject("WScript.Shell"); > var exec = shell.Exec("C:\\Temp\\xh.exe https://www.haijin-boys.com/"); > > // 標準入力で CR を送信しないとフリーズする? > exec.StdIn.Write(String.fromCharCode(0x0D)); > exec.StdIn.Close(); > > var output = ""; > > while (!exec.StdOut.AtEndOfStream) { > output += exec.StdOut.ReadLine() + "\n"; > } > > outputBar.writeln("出力結果:\n" + output); > ``` > > …という感じで、動作自体はするものの、案の定、日本語は文字化けしてしまいます。 > > UTF-8 の生バイト列を直接取得する手段は見当たらず…。 > > PowerShell 経由で Base64 にエンコード → マクロ側でデコードして UTF-8 に変換、という手も試してみたのですが、どうやっても文字化けは解消されませんでした。 > > 標準出力の内容自体はおそらく UTF-8 だと思うのですが、どこかで Shift_JIS が絡んでいるような気配もあり、なかなか一筋縄ではいきませんね。 > > ということで、マクロに標準出力の取得機能を搭載するとしたら、 > > - WshScriptExec 相当のオブジェクトの実装 > - 標準入力 (StdIn) のサポート (これがないと xh.exe は動作しない?) > - 標準出力 (StdOut)、標準エラー (StdErr) のサポート > > といった WScript.Shell の Exec 相当のエミュレーションに加えて、 > > - 標準出力をストリームで取得する機能 > - ストリームから任意の形式へのデコード機能 > > …と、なかなか大掛かりな実装が必要になりそうです😭 > > というわけで、ひととおり検証してみたものの、対応は難しそうという感じでした。やっぱり標準出力まわりは奥が深いですね…
マークダウンを有効にする
テキストエディター「Mery」ベータ版 v3.8.3 を公開
知っておくと便利なテキストエディター「Mery」の 10 個の小技
テキストエディター「Mery」の配色テーマ集
テキストエディター「Mery」ベータ版 Ver 2.6.9 を公開、自動保存機能、バックアップ機能を搭載
好みのカラーがきっと見つかる!テキストエディター「Mery」の美しいテーマ 101 個
トモダチコレクション わくわく生活 -Switch
トモダチコレクション わくわく生活|オンラインコード版
ニンテンドープリペイド番号 9000円|オンラインコード版
ニンテンドープリペイド番号 5000円|オンラインコード版
ニンテンドープリペイド番号 2000円|オンラインコード版
ノーゲーム・ノーライフ 13 ゲーマー兄妹たちは『魔王』を討つ(すくう)よ…
陰の実力者になりたくて! 07
異世界のんびり農家 20.5
本好きの下剋上 ハンネローレの貴族院五年生3
ソードアート・オンライン29 ユナイタル・リングVIII (電撃文庫)