我正在運行這兩個命令net users >> out.txt并wmic qfe list full >>out.txt在批處理檔案中。這樣做之后,wmic 命令的輸出會在每個其他字符之后顯示空字符。有沒有辦法解決這個問題?當我在單獨的文本檔案中輸出這兩個命令資訊時,輸出非常好。對于為什么會發生這種情況,我對此感到非常困惑
uj5u.com熱心網友回復:
wmic使用 little-endian UTF-16 顯示其輸出,同時net users使用常規 ANSI。在 UTF-16 中,每個字符有兩個位元組長,標準 ASCII 字符集是它的常規 ASCII 值后跟一個空位元組。
首次運行時net users >> out.txt,您強制輸出檔案不是 UTF-16 編碼的檔案,因此wmic無法正確顯示命令的輸出。(順便說一下,如果你只是試圖交換命令的順序,你會發現net users命令會顯示為漢字。)
將輸出輸出到 ANSI的唯一方法wmic是通過多個for /f回圈運行它:
net users >> out.txt
for /f "delims=" %A in ('wmic qfe list full') do for /f "delims=" %B in ("%~A") do echo %B >> out.txt
請注意,如果您將其放入腳本中,則需要使用%%Aand%%B而不是%Aand %B。
uj5u.com熱心網友回復:
wmic使用不同的字符集并在其輸出中有一些額外的 CRLF。一種方法是使用 for 回圈:
從cmd
(net users && @for /F "delims=" %i in ('wmic qfe list full') do @echo(%i)>out.txt
在一個batch-file
(net users && @for /F "delims=" %%i in ('wmic qfe list full') do @echo(%%i)>out.txt
uj5u.com熱心網友回復:
我會完全使用不同的命令,net.exe 并不是您真正需要的結果。
@%SystemRoot%\System32\wbem\WMIC.exe /Output:"out.txt" UserAccount Get Name
@%SystemRoot%\System32\wbem\WMIC.exe /Append:"out.txt" QFE List Full 1>NUL
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/469182.html
標籤:批处理文件
上一篇:Google拒絕對HMS隱式PendingIntent漏洞進行補救更新
下一篇:在CMD中洗掉相同大小的檔案
