我试图在从windows命令写入输出后将字符串“KB”附加到文件中:
C:\Users\Administrator> wmic OS get FreePhysicalMemory > C:\temp\temp.txt
C:\Users\Administrator> echo KB >> C:\temp\temp.txt
但在记事本中我看到一些奇怪的东方字符而不是KB
FreePhysicalMemory
1441960
䉋ഠ∊䉋•
我希望看到文本“FreePhysicalMemory 1441960 KB”。 如果可能的话,我希望在数字后面有KB,而不是在新行上。 一旦我这样做,我将使用该文件与另一个程序(InterSystemsCaché)并将其放在另一个html文件中,但这不应该。
答案 0 :(得分:2)
wmic
将输出写为UTF-16LE(带有BOM),当您将ASCII字符附加到tends to look Chinese时。
您可以强制cmd.exe也使用/ U开关写入UTF-16:
wmic OS get FreePhysicalMemory > out.txt
cmd /U /C echo kb ^>^> out.txt
将它作为单行写入比它应该复杂得多。
FOR /F "delims=" %A IN ('wmic OS get FreePhysicalMemory /Format:list ^| more') do @FOR /F "tokens=1,* delims==" %B in ("%A") do @echo.%B %C KB > out.txt
从more
转换为Serial.available()
转换为UTF-16和second for loop removes empty lines。