cloudbase-init userdata windows中文乱码

2023-10-27 19:08:13 浏览数 (1)

问题描述: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

0 人点赞