powershell 重定向输出字符串到.bat 、.cmd、 .vbs等文本性质的可执行文件时,一定要注意编码
powershell默认生成的文件的编码是UTF-16 LE BOM
而.bat 、.cmd、 .vbs的编码默认是ANSI
这样生成的.bat 、.cmd、 .vbs在cmd命令行执行会报错
参考https://til.secretgeek.net/powershell/out-file-encoding.html
注意加-encoding ascii
例如制作sysprep镜像、在执行sysprep命令之前需要执行下面的powershell代码,代码里输出重定向到.cmd文件要加 -encoding ascii
mkdir c:\windows\setup\scripts -force
del "C:\windows\setup\scripts\SetupComplete.cmd" 2>$null 1>$null
write-host > C:\windows\setup\scripts\SetupComplete.cmd
"sc.exe config cloudbase-init start= auto" | Out-File -Append C:\windows\setup\scripts\SetupComplete.cmd -encoding ascii
"sc.exe start cloudbase-init" | Out-File -Append C:\windows\setup\scripts\SetupComplete.cmd -encoding ascii
"net user administrator /active:yes" | Out-File -Append C:\windows\setup\scripts\SetupComplete.cmd -encoding ascii
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。