问题描述:userdata windows中文乱码
解决办法:把代码写到文件里,执行文件,不要直接铺开代码
处理方法:
参考文档 录屏
文档:https://cloud.tencent.com/developer/article/2285114
录屏:https://cloud.tencent.com/developer/video/78850
方案具有通用性,兼容阿里云、腾讯云等使用cloudinit那一套的userdata
示例:
代码语言:javascript复制#ps1
wget http://windows-1251783334.cos.ap-shanghai.myzijiebao.com/115.159.148.149/ceshi1.bat -Outfile c:ceshi1.bat
cmd.exe /c c:ceshi1.bat >> c:init.log 2>&1
代码语言:javascript复制#ps1
wget http://windows-1251783334.cos.ap-shanghai.myzijiebao.com/115.159.148.149/ceshi2.bat -Outfile c:ceshi2.bat
cmd.exe /c c:ceshi2.bat >> c:init.log 2>&1
如果要重定向一个含有中文的bat,在userdata里只能用powershell unicode重定向
然后cmd.exe /c bat文件的绝对路径来执行
如果已经提前把含有中文的bat文件放在网上了,就省了重定向的麻烦,直接下载下来后cmd.exe /c bat文件的绝对路径来执行即可
我平时都是放在cos里,下载后来用
很少直接在userdata里重定向生成一个.bat文件来用,这样太麻烦了
代码语言:javascript复制#ps1
mkdir C:scripts -force
del "C:scriptsSetupComplete.bat" 2>$null
write-host > C:scriptsSetupComplete.bat
$chinese = [char]0x4EE5 [char]0x592A [char]0x7F51
$command = "$chinese 2>&1 > nul"
$command | Out-File -Append C:scriptsSetupComplete.bat -encoding utf8
write-host > C:SetupComplete.bat
"以太网 2>&1 > nul" | Out-File -Append C:SetupComplete.bat -encoding ascii
exit