前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >重定向中,%date%比较特殊

重定向中,%date%比较特殊

原创
作者头像
Windows技术交流
修改2024-04-12 13:32:14
1250
修改2024-04-12 13:32:14
举报
文章被收录于专栏:Windows技术交流

背景是这样,我在powershell中想重定向生成一个ANSI编码的文件,试了多种编码方式都做不到,比如

代码语言:powershell
复制
"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编码的,发现有点难,但下面这句可以(注意>前后没有空格,有空格则达不到效果)

代码语言:powershell
复制
cmd.exe /c echo %date%>c:\log.txt

后来我就研究%date%到底有啥不同,发现是Windows特性:涉及%date%是ANSI编码,例如

代码语言:bash
复制
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中实现换行重定向?

示例:

代码语言:bash
复制
(
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”,原因是报错的那个环境变量路径不存在

代码语言:bash
复制
(
echo %date%
echo "%path%"
echo %time%
)>c:\log.txt

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档