我有以下代碼,獲取逗號分隔字符串的列表,用一些標記環繞它們並將輸出寫入文件。 行之有效的短名單,但對於長期(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現在什麼是限制)
['設置/P'](http://ss64.com/nt/set.html)限制一個字符串1021(!)個字符,所以這就是它被截斷的原因;通過['for /F'](http://ss64.com/nt/for_f.html)讀取文本文件將限制行數爲〜8190個字符。如果你有更長的行,不要使用批處理腳本... – aschipfl
8k是偉大的,我將如何去改變我的代碼? – AlexD
只需用下面的代碼替換SET/p CS_VALUES = <%1':'for/F'usebackq delims =「%% A in(」%〜1「)do set」CS_VALUES = %% A「' – aschipfl