4
wmic OS get FreePhysicalMemory,TotalVisibleMemorySize /Format:Textvaluelist > Output.txt  

上記のコマンドをバッチで使用すると、次のような出力が得られます。

FreePhysicalMemory=1140860
TotalVisibleMemorySize=2095492

等号 (=) の後に単一のスペースを追加して、次のように見えるようにします。

FreePhysicalMemory= 1140860
TotalVisibleMemorySize= 2095492

以下で試していますが、エラーが発生します:コマンドの構文が正しくありません

For /F "tokens=1 delims==" %%A in ('wmic OS get FreePhysicalMemory,TotalVisibleMemorySize /Format:Textvaluelist') do 
echo %%A %%B > Output.txt  

または、バッチを使用して必要な形式で出力を取得する他の方法はありますか?

4

2 に答える 2

2

最初に、WMIC出力エンコーディングを からUnicodeへ変換してANSIUnicode 文字 (空の Echoes など) を除外することを検討します。これを行う簡単な方法は、FIND/FINDSTRコマンドで出力をフィルタリングすることです。出力フィルタを適用した後、出力を読み取るだけです。目的の値と区切りFOR /F文字を使用して文字列を分割します。tokensdelims

コードは次のとおりです。

@Echo OFF

(For /F "Tokens=1,* Delims==" %%A in (
    'wmic OS get FreePhysicalMemory^,TotalVisibleMemorySize /Format:list ^| FINDSTR "[0-9]"'
)DO (
    Echo %%A= %%B
))>"File.txt"

Pause&Exit
于 2013-10-19T06:09:09.067 に答える