Excel에서 .csv를 열면 WMIC |more에 추가 행이 있습니다.

Excel에서 .csv를 열면 WMIC |more에 추가 행이 있습니다.

내 시스템에 설치된 각 프로그램의 이름과 버전을 .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

사용할 때 빈 행이 표시되는 이유는 | moreCSV의 인코딩이 ANSI이지만 아래에서 볼 수 있듯이 추가 캐리지 리턴이 있기 때문입니다.

1

생략하면 | more유니코드 CSV가 됩니다. 불행하게도 Excel에서는 이러한 CSV를 열 때 값이 열로 분리되지 않는다는 점에서 문제가 있는 것 같습니다. 이에 대한 두 가지 해결 방법이 있습니다.

  1. 유니코드(즉, ANSI가 아닌) 문자가 손실되는 것을 걱정하지 않으려면 Excel에서 열기 전에 ANSI 인코딩으로 CSV를 저장하세요.

  2. 유니코드 인코딩에 관심이 있다면 Excel의 텍스트 가져오기 마법사( Data tab > From Text)를 사용하여 쉼표를 구분 기호로 지정하세요.

    2


편집하다:ANSI로 인코딩된 CSV로 끝나는 직접적인 방법은 다음과 같습니다.

  1. 복사 Windows\System32\wbem\en-US\csv.xsl(교체en-US언어 코드로)를 원하는 디렉토리로 복사하세요.

  2. 메모장과 같은 텍스트 편집기에서 파일을 열고부호화의 속성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"/>
    
  3. 달리다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,&#29992;&#20110; Visual Studio 2013 &#30340; Microsoft &#25253;&#21578;&#26597;&#30475;&#22120;&#21152;&#36733;&#39033;,11.1.3442.2

관련 정보