在 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

Excel:

ComputerName,Software1,1.0

ComputerName,Software2,2.1

ComputerName,Software3,2.5

|more我認為這是因為 WMIC 輸出最初是 Unicode 格式的,但我認為我透過添加到命令來正確解決這個問題。據我所知,該文件是 ASCII 格式,但我沒有檢查所有字元。

對於可能導致此問題的原因以及如何解決此問題有什麼想法,以便文件在 Excel 中開啟時不會有多餘的空白行?

謝謝!

答案1

使用時看到空白行的原因| more是,雖然 CSV 的編碼是 ANSI,但它有額外的回車符,如下:

1

如果省略,| more您最終會得到 Unicode CSV。不幸的是,Excel 似乎對此類 CSV 存在問題,因為打開它們時,值不會分成列。對此有兩種解決方案:

  1. 如果您不介意遺失 Unicode(即非 ANSI)字符,請在使用 Excel 開啟之前使用 ANSI 編碼儲存 CSV。

  2. 如果您確實關心 Unicode 編碼,請使用 Excel 的文字匯入精靈 ( Data tab > From Text) 並指定逗號作為分隔符號:

    2


編輯:以下是最終獲得 ANSI 編碼 CSV 的直接方法:

  1. 複製Windows\System32\wbem\en-US\csv.xsl(替換en-US與您的語言代碼)到您選擇的任何目錄。

  2. 在任何文字編輯器(例如記事本)中開啟該文件,然後更改編碼的屬性XML(XSLT)輸出方式Windows-1252UTF-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

相關內容