0
私は、C++を使ってビルドされたサービスから実行され、ユニコードを使用して構築されていないスクリプトを持っています。このプログラムは以下のスクリプトを実行し、不思議なことに、wmic qfeリスト行を実行しているスクリプトの出力がユニコードとして出力されているようです。下のサンプル出力。ここでスクリプトからのasciiとunicodeの混在出力 - コマンドをすべてasciiとして出力する方法を教えてください。
はスクリプトです:
@echo off
echo This text is output as standard - no spacing between characters >>C:\log.txt
REM this one is output with 1 space between characters
wmic qfe list >>C:\log.txt
echo This text is also output as standard - no spacing >>C:\log.txt
サンプル出力
This text is output as standard - no spacing between characters
C a p t i o n C S N a m e D e s c r i p t i o n F i x C o m m e n t s H o t F i x I D I n s t a l l D a t e I n s t a l l e d B y I n s t a l l e d O n N a m e S e r v i c e P a c k I n E f f e c t S t a t u s
h t t p :// s u p p o r t . m i c r o s o f t . c o m/? k b i d = 4 0 1 2 2 1 2 M F M - 7 4 2 - 0 - 7 1 S e c u r i t y U p d a t e K B 4 0 1 2 2 1 2 N T A U T H O R I T Y \ S Y S T E M 5/1 8/2 0 1 7
This text is also output as standard - no spacing
は実は、私はちょうどバイナリエディタを使用してファイルを見たと文字の間に文字がヌル文字です。おそらく、wmic qfeリストがUnicodeを出力しているはずです。
どのようにして、すべての出力をASCIIまたはすべての出力をUnicodeとして取得するのですか。 asciiとして出力されるすべてが優先されます。
どのように機能しますか?それはfindがunicodeとasciiを読むことができますがasciiだけを出力できるからですか? –
@AngusComber、私はこの時点で100%確実なデバッガを手元に持っていないので、これは単なる推測です。このアプローチをより多くの* filter *アプリケーションでテストしたところ、動作は一貫していたので、Unicodeを扱うのはコマンドではなく、出力ストリームのタイプに応じて出力を適合させるのは 'wmic'です。 –