作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在批处理文件中运行这两个命令 net users >> out.txt
和 wmic qfe list full >>out.txt
。这样做之后,wmic 命令的输出每隔一个字符就会显示空字符。有什么办法可以解决这个问题吗?当我在单独的文本文件中输出这两个命令信息时,输出非常好。我对为什么会这样感到非常困惑
最佳答案
wmic
使用小端 UTF-16 显示其输出,而 net users
使用常规 ANSI。在 UTF-16 中,每个字符都是两个字节长,标准 ASCII 字符集是其常规 ASCII 值后跟一个空字节。
当您首先运行 net users >> out.txt
时,您强制输出文件不是 UTF-16 编码文件,因此 wmic
命令显示不正确。 (顺便说一句,如果您只是尝试交换命令的顺序,您会发现 net users
命令会显示为中文字符。)
将 wmic
输出转换为 ANSI 的唯一方法是通过多个 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
请注意,如果您将其放入脚本中,则需要使用 %%A
和 %%B
而不是 %A
和 %B
。
关于batch-file - 胆汁文件输出到非结构化文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72074855/
我是一名优秀的程序员,十分优秀!