내 시스템에 설치된 각 프로그램의 이름과 버전을 .csv 파일로 출력하려고 합니다. VBScript를 사용하여 더 복잡한 작업을 수행할 수 있지만 시스템 백업을 수행하기 직전에 실행될 배치 파일로 포함하기 위해 이를 매우 단순하게 유지하는 것을 선호합니다. 약간의 연구 끝에 나는 아래와 같은 결론을 내렸습니다.
wmic product get name,version /format:csv |more >Installed_Apps.csv
결과 파일을 메모장에서 열면 파일 상단에 빈 행과 노드 열이 추가되는 것을 볼 수 있습니다. 어느 쪽도 바람직하지 않지만, 나는 이 두 가지 이상한 점을 모두 안고 살아갈 수 있습니다. 그러나 저를 괴롭히는 것은 파일을 두 번 클릭하고 Excel에서 열면 메모장에서 파일을 열 때 표시되지 않는 각 결과 행 사이에 빈 행이 있다는 것입니다.
예:
메모장:
ComputerName,Software1,1.0
ComputerName,Software2,2.1
ComputerName,Software3,2.5
뛰어나다:
ComputerName,Software1,1.0
ComputerName,Software2,2.1
ComputerName,Software3,2.5
이는 WMIC 출력이 원래 유니코드로 되어 있었기 때문이라고 가정하지만 |more
명령에 추가하여 이 문제를 올바르게 해결하고 있다고 생각했습니다. 내가 알 수 있는 바에 따르면 파일은 ASCII 형식이지만 모든 문자를 검사하지는 않았습니다.
이 문제의 원인과 Excel에서 파일을 열 때 추가 빈 행이 없도록 이 문제를 해결하는 방법에 대해 어떻게 생각하시나요?
감사해요!
답변1
사용할 때 빈 행이 표시되는 이유는 | more
CSV의 인코딩이 ANSI이지만 아래에서 볼 수 있듯이 추가 캐리지 리턴이 있기 때문입니다.
생략하면 | more
유니코드 CSV가 됩니다. 불행하게도 Excel에서는 이러한 CSV를 열 때 값이 열로 분리되지 않는다는 점에서 문제가 있는 것 같습니다. 이에 대한 두 가지 해결 방법이 있습니다.
유니코드(즉, ANSI가 아닌) 문자가 손실되는 것을 걱정하지 않으려면 Excel에서 열기 전에 ANSI 인코딩으로 CSV를 저장하세요.
유니코드 인코딩에 관심이 있다면 Excel의 텍스트 가져오기 마법사(
Data tab > From Text
)를 사용하여 쉼표를 구분 기호로 지정하세요.
편집하다:ANSI로 인코딩된 CSV로 끝나는 직접적인 방법은 다음과 같습니다.
복사
Windows\System32\wbem\en-US\csv.xsl
(교체en-US언어 코드로)를 원하는 디렉토리로 복사하세요.메모장과 같은 텍스트 편집기에서 파일을 열고부호화의 속성XML(XSLT) 출력 방법에게윈도우-1252~에서UTF-16, 즉 다음과 같습니다.
<?xml version="1.0"?> <!-- Copyright (c) Microsoft Corporation. All rights reserved. --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output encoding="utf-16" omit-xml-declaration="yes"/>
이에:
<?xml version="1.0"?> <!-- Copyright (c) Microsoft Corporation. All rights reserved. --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output encoding="Windows-1252" omit-xml-declaration="yes"/>
달리다
wmic product get name,version /format:csv.xsl > ProductList.csv
메모:ANSI가 아닌 문자는 다음과 같이 인코딩됩니다.
UTF-16:
ComputerName,用于 Visual Studio 2013 的 Microsoft 报告查看器加载项,11.1.3442.2
Windows-1252(ANSI):
ComputerName,用于 Visual Studio 2013 的 Microsoft 报告查看器加载项,11.1.3442.2