J'ai un script qui est exécuté à partir d'un service qui est construit en utilisant C++ et n'est pas construit en utilisant unicode. Ce programme exécute le script ci-dessous et étrangement, la sortie du script exécutant la ligne de liste wmic qfe semble sortir en unicode. Exemple de sortie ci-dessous.Sortie ascii et unicode mixtes à partir du script - comment obtenir la commande de sortie tout comme ascii?
est le script ici:
@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
Exemple de sortie
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
En fait, je viens de visualiser le fichier en utilisant un éditeur hexadécimal et les caractères entre les lettres sont des caractères nuls. donc probablement wmic qfe liste doit sortir unicode.
Alors, comment puis-je soit tout sortir comme ASCII ou toutes les sorties comme unicode. Tout le rendement en tant que ascii serait préféré.
Comment cela fonctionne-t-il? Est-ce parce que find peut lire unicode AND ascii mais seulement des sorties ascii? –
@AngusComber, je n'ai pas de débogueur à portée de main pour être sûr à 100%, donc c'est juste une supposition. J'ai testé cette approche avec plus d'applications * filter * et le comportement est cohérent, donc, ce n'est pas la commande utilisée qui gère l'unicode, c'est 'wmic' qui adapte sa sortie en fonction du type de flux sortant. –