2017-05-19 7 views
0

C++를 사용하여 빌드 된 유니 코드를 사용하여 빌드되지 않은 서비스에서 실행되는 스크립트가 있습니다. 이 프로그램은 아래 스크립트를 실행하고 이상하게도 wmic qfe 목록 줄을 실행하는 스크립트의 출력이 유니 코드로 출력되는 것 같습니다. 샘플 출력은 다음과 같습니다. 여기 스크립트에서 아스키 코드와 유니 코드 코드를 섞어서 출력합니다 - 명령을 모두 ascii로 출력하는 방법은 무엇입니까?

스크립트입니다 :

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 

사실

@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 

샘플 출력, 난 그냥 16 진수 편집기와 문자 사이의 문자가 null 문자입니다를 사용하여 파일을 볼. 아마도 wmic qfe list는 유니 코드를 출력하고있을 것입니다.

그래서 어떻게 모든 출력을 유니 코드로 ascii 또는 모든 출력으로 가져올 수 있습니까? ascii로 출력되는 모든 것이 선호 될 것입니다.

답변

0
wmic qfe list | find /v "" >> c:\log.txt 
wmic qfe list | findstr "^" >> c:\log.txt 

파이프 리디렉션하기 전에 find 또는 findstr 명령에 wmic 명령의 출력 (당신의 출력이 적은 65,535 이상의 라인이있는 경우는 주문에 문제가있는 경우, 또는 more이없는 경우도 sort을 사용할 수 있습니다) 파일에의 출력.

+0

어떻게 작동합니까? 그것은 find가 유니 코드와 ascii를 읽을 수 있지만 ascii 만 출력 할 수 있기 때문입니까? –

+0

@AngusComber, 지금 당장은 디버거가 없어서 100 % 확신 할 수 없으므로 이것은 추측에 불과합니다. 더 많은 * 필터 * 응용 프로그램에서이 접근법을 테스트 한 결과 동작이 일관 적이기 때문에 유니 코드를 다루는 사람이 사용한 명령이 아니라 출력 스트림의 유형에 따라 출력을 조정하는 것은'wmic'입니다. –