variables - 如何覆盖批处理变量的字符数限制?

标签 variables batch-file character limit

我正在处理的当前项目有问题。
我必须将存储在文件中的查询放入一个变量中,该变量的文件只包含一个查询(它是由程序的一部分生成的)。例如,我使用以下代码:

set /p query=<path\to\my\folder\fileContainingQuery.soql

当查询不是那么长时它可以工作,但是当它的长度超过 1024 个字符时,查询被截断,因为我必须使用 FART 工具将它发送到另一个配置文件,这很不方便。

如何覆盖这个问题?

最佳答案

一个环境变量中可以存储多少数据是有限制的。理论上,最大长度为 32767 个字符,但批处理文件不能设置超过最大命令行长度 (8192) 的变量。

您可以使用 for /f命令读取行

for /f "usebackq delims=" %%f in ("path\to\my\folder\fileContainingQuery.soql") do set "q=%%f"

或者你可以生成一个辅助批处理文件来分配查询的内容
<nul set/px=set q=>sql.set.cmd
type "path\to\my\folder\fileContainingQuery.soql">>sql.set.cmd
call sql.set.cmd

只有当最终命令行不太大(我的测试中为 8186 个字符)时,两者都会将最大可能的文本放入变量中。在其他情况下,不会检索任何内容。

但是,一旦检索到值,就必须在命令中使用它。在这里发生了同样的限制。 8192 是最大行长和行内变量IS 的内容。

因此,您对查询长度的最终限制小于该限制。

关于variables - 如何覆盖批处理变量的字符数限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21723275/

相关文章:

java - 声明一次并更新值比声明每次更新更快吗?

c - 将本地堆栈变量放入全局列表中,以便其他线程可以使用它

c - 如何在C中将字符组合在一起作为字符串

javascript - 在 JavaScript 中多次重复一个字符串

javascript 变量使用帮助

windows - 使用命令提示符或 Powershell 找到桌面快捷方式

android - ics-openvpn : how to compile on windows machine

python - 带有 pyautogui 的 .pyx 脚本可以在spyder/cmd中运行,但不能在bat文件中运行

javascript - 如何增加博客片段中的字符长度而不是使用有限的长度 'data:post.snippet' ?

variables - 如何在 ansible 角色中设置常量?