创建包含一段文本的PowerShell内容

zvokhttg  于 2022-11-10  发布在  Shell
关注(0)|答案(1)|浏览(110)

我正在尝试编写一个脚本来创建一个包含VPN连接配置的‘文件’(无扩展名)。我们正在使用的VPN应用程序(AWS)使用用户配置文件中的相关连接信息创建了一个‘文件’--所以我只是试图通过从头开始创建文件来复制这些信息。
我尝试创建的文件的示例
客户端
开发人员调谐
协议UDP
信息
信息
到目前为止,这是奏效的

$config = @'

client

dev tun

proto udp

INFORMATION

INFORMATION

'@

$config > "C:\users\$env:username\AppData\Roaming\AWSVPNClient\OpenVpnConfigs\AWS VPN Tech"

这将创建完全相同的文件(字母对字母),并且似乎保持段落格式。
然而,我的新文件是10KB,而我从其中复制/粘贴的原始文件只有5KB。连接也失败。虽然它看起来像是在创造一个复制品,但显然不是。
我猜这是某种编码问题。真的不知道从哪里开始。关于原始文件的格式,我能找到的信息不多。Windows只是将其视为一个“文件”(没有扩展名)。
我正在使用记事本++创建我的脚本,到目前为止,还没有任何问题。

cbjzeqam

cbjzeqam1#

当对文件系统提供程序使用流重定向操作符(>>>)时,默认情况下调用Out-File -Encoding Unicode
相反,请使用Set-Content cmdlet,它的默认设置为UTF8:

$config |Set-Content "C:\users\$env:username\AppData\Roaming\AWSVPNClient\OpenVpnConfigs\AWS VPN Tech"

相关问题