带分割列表的字符串和环绕标记的批处理脚本限制

我有以下代码,获取逗号分隔字符串的列表,用一些标记环绕它们并将输出写入文件。 行之有效的短名单,但对于长期(200串)名单,我得到一半的项目带分割列表的字符串和环绕标记的批处理脚本限制

setlocal enabledelayedexpansion 

SET /p CS_VALUES=<%1

SET TEMP_FILE="D:\tmp.txt"

>%TEMP_FILE% ECHO:

FOR %%i in (%CS_VALUES%) do (

SET query="<quer:string>%%i</quer:string>"

>>%TEMP_FILE% ECHO !query:~1,-1!

)

ECHO %TEMP_FILE%

所以对于输入:A00000, A00001, .... , A00200 我会得到这样的:

<quer:string>A00000</quer:string> 

<quer:string>A00001</quer:string>

<quer:string>A00002</quer:string>

....

<quer:string>A00</quer:string>

(停在一些变量< 200在该项目的中间)

我认为它与某些限制有关,但无法弄清楚哪些以及如何扩展它(或者如果它不可能扩展 - 将是很好的k现在什么是限制)

回答:

set /P command接受最高为1021字/字节长度的文本行,这就是为什么你的文字成为截断。

若要接受更长的行,即大约8190个字符/字节,请改用for /F loop。在你的代码,这意味着更换:

SET /p CS_VALUES=<%1 

通过:

for /F "usebackq delims=" %%A in ("%~1") do set "CS_VALUES=%%A" 

回答:

这是您的For /F选项示例。

@Echo Off 

>"D:\tmp.txt" (For /F "UseBackQ Delims=" %%A In ("%~1"

) Do Echo ^<quer:string^>%%~A^</quer:string^>)

以上是 带分割列表的字符串和环绕标记的批处理脚本限制 的全部内容, 来源链接: utcz.com/qa/263710.html

回到顶部