【发布时间】:2021-04-17 20:15:53
【问题描述】:
我正在尝试运行一个应用程序,该应用程序读取一个包含大约 22k 个字符的 JSON 的环境变量。项目设置告诉我使用$(cat ./path/to/file) 正确配置它,但由于我使用的是windows,此命令不起作用。
我尝试使用 GUI 环境变量将文件的内容复制到变量中,但它的输入会将值截断到某个限制,甚至不在文件的一半上。 在此之后,我尝试使用带有命令的 Powershell 设置变量:
$env:myvar = iex '$(type path/to/file)'
然后保存结果:
[System.Environment]::SetEnvironmentVariable('MYVAR', $env:MYVAR, [System.EnvironmentVariableTarget]::Machine)
在这些命令之后,Powershell 能够正确打印结果,但是当我echo它时,CMD 仍然只打印部分值。
这很奇怪,因为 regedit 显示了正确的值 as suggested here。
应用程序仍然无法处理该值,因为它不完整。
有什么解决办法吗?
【问题讨论】:
-
“一个 [n] 环境变量,其中包含大约 22k 个字符的 JSON。” 永远不会在 Windows 上工作(env var 值必须适合每个
-
进程中的总字节数可能是问题所在。但是如果每个 env var 必须小于 ~8k,regedit 如何显示正确的完整值?
-
“读取环境变量的应用程序” - 什么应用程序,它能否以除 (ab) 使用环境变量之外的其他方式读取此数据?
-
为什么不安装 Wsl(Linux 的 Windows 子系统)并使用 linux 命令
-
@MathiasR.Jessen,这些限制本身并不完全正确 - 请参阅我的答案。
标签: windows powershell environment-variables