4

コマンドを実行すると

wmic memorychip get capacity

cmd ウィンドウのコマンド ラインから、画面上の出力は次のようになります。

Capacity    
2147483648 

ただし、このコマンドをバッチ ファイルに追加して、出力をファイルにリダイレクトしようとすると、次のようになります。

wmic memorychip get capacity >> %LOG%

(%LOG% は、データを追加するログ ファイルにすぎません)、次のようにログ ファイルに保存されます。

C a p a c i t y         

 2 1 4 7 4 8 3 6 4 8     

ここでは、各文字の前にスペースが挿入されています。Notepad ++では、挿入されたNULが表示されますが、何らかの理由でここに貼り付けることができません:(

出力がそのように変更される理由と、この変換を回避する方法を知っている人はいますか?

4

3 に答える 3

3

ユニコード恐るべし。

試す

wmic memorychip get capacity |more>> %LOG%
于 2013-04-19T06:22:39.933 に答える
1

出力ファイルはあるが、元のコマンドを再度実行できない場合は、cat original.txt | tr -d "\00" > cleaned.txtヌル文字が削除された新しいファイルが生成されます。このコマンドは、 BusyBoxによって提供されるものなど、一般的な Unix シェル ツールが使用可能であることを前提としています。

于 2019-10-15T02:31:34.347 に答える
0

問題は、wmic は Unicode で動作しますが、cmd は ascii で動作することです。これを試してください:

for /f "delims=" %a in ('wmic memorychip get capacity') do @for /f "delims=" %b in ("%a") do echo %b > log
于 2013-04-18T20:31:22.287 に答える