[解決済み] child_process.spawn の実行時に色を保持する。
2023-05-11 16:02:11
質問
node.jsでchild_process.spawnを使ってcmd.exeからWindowsのコマンドを実行しようとしています。それは正しく実行されますが、デフォルトのテキスト色で表示されるだけです。どのように色を維持するのでしょうか。それは可能ですか?
var spawn = require('child_process').spawn,
cmd = spawn('cmd', ['/s', '/c', 'C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\MSBuild c:\\test.sln']);
cmd.stdout.on('data', function(data){
process.stdout.write(data);
});
cmd.stderr.on('data', function(data){
process.stderr.write(data);
});
cmd.on('exit', function(code){
console.log(code);
});
ノード経由で実行した場合、色は保持されない。
cmd.exe 経由で直接実行した場合、色は保持されます。(これは期待された動作です)。ノード経由で実行したときにこの動作を得るにはどうしたらよいでしょうか。
どのように解決するのですか?
代わりにこれを試してみてください。
var spawn = require('child_process').spawn
, command = 'C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\MSBuild c:\\test.sln'
, cmd = spawn('cmd', ['/s', '/c', command], { customFds: [0,1,2] });
cmd.on('exit', function(code){
console.log(code);
});
を使うかどうかについては、私は肯定的ではないことに注意してください。
customFds
が Windows で動作するかどうかについては肯定的ではありません。古い非推奨の機能で動作しないことは知っていますが
[0,1,2]
をfdとして渡す場合は、特別なケースがあると思います。
しているのは と同じようなものをここに を行っていますが、このコマンドはUnixマシンでしか実行したことがありません。Windows で動作するかどうか教えてください。
関連
-
[解決済み】エラーです。EACCES: 権限が拒否されました、アクセス '/usr/local/lib/node_modules' 。
-
[解決済み】MongoClient v3.0使用時、db.collectionは関数ではない
-
[解決済み】Google spreadsheet api Requestに不十分な認証スコープがあった。
-
[解決済み】モジュール 'internal/util/types' が見つかりません。
-
[解決済み】MongoDBのデータ/DBが見つからない
-
[解決済み】POSTできない/expressを使用するとエラーが発生する
-
[解決済み】npm 5で作成されたpackage-lock.jsonファイルはコミットするのでしょうか?
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] node.jsのコンソールのフォントカラーを変更する方法は?
-
[解決済み] node.jsで「Error: spawn ENOENT」をデバッグするにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】モジュール 'internal/util/types' が見つかりません。
-
[解決済み】ENOENT, そのようなファイルまたはディレクトリがありません。
-
[解決済み】Nodejsの解決方法:Error: ENOENT: そのようなファイルまたはディレクトリがありません
-
[解決済み】Node.jsのホスト名/IPが証明書のaltnamesと一致しない。
-
[解決済み] MongoDB でコレクションを日付順に並べるには?
-
[解決済み] ブラウザで動作しているURLで「connect ETIMEDOUT」エラーが発生する原因は何ですか?
-
[解決済み] TypeErrorです。リクエストパスにエスケープされていない文字が含まれています。
-
[解決済み] エラーです。Cannot find module 'ejs'
-
[解決済み] エラーです。Expressでビューの検索に失敗しました
-
[解決済み] ノードマータ予期せぬフィールド