背景是这样,我在powershell中想重定向生成一个ANSI编码的文件,试了多种编码方式都做不到,比如
"oem" | out-file "c:\test_test_test\out-file-oem.txt" -encoding oem
"ascii" | out-file "c:\test_test_test\out-file-ascii.txt" -encoding ascii
"default" | out-file "c:\test_test_test\out-file-default.txt" -encoding default
这3句powershell代码生成的文件用notepad++打开都显示是UTF-8编码
我就想用powershell生成一个.txt文件是ANSI编码的,发现有点难,但下面这句可以(注意>前后没有空格,有空格则达不到效果)
cmd.exe /c echo %date%>c:\log.txt
后来我就研究%date%到底有啥不同,发现是Windows特性:涉及%date%是ANSI编码,例如
echo %date%>C:\log.txt文本文件编码是ANSI
echo %time%>C:\log.txt文本文件编码是UTF-8
echo %path%>C:\log.txt文本文件编码是UTF-8
echo %date% %time%>C:\log.txt文本文件编码是ANSI
echo %date% %path%>C:\log.txt文本文件编码是ANSI
如何.cmd或.bat中实现换行重定向?
示例:
(
echo Line1
echo Line2
echo Line3
)>output.txt
C:\Users\Administrator>(
More? echo %date%
More? echo "%path%"
More? echo %time%
More? )>c:\log.txt
More?是回车换行的时候自己出来的,不是代码中的字符,忽略即可
实际敲代码的时候是下面这样(注意%path%要加引号,否则可能会报错“此时不应有xxx”,原因是报错的那个环境变量路径不存在)
(
echo %date%
echo "%path%"
echo %time%
)>c:\log.txt
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。